Творческая Iskra. Делаем аппаратный менеджер паролей своими руками. Какой менеджер паролей наиболее удобен и надежен – сравнительный обзор

Творческая Iskra. Делаем аппаратный менеджер паролей своими руками. Какой менеджер паролей наиболее удобен и надежен – сравнительный обзор

03.07.2019

3 июня компания SatoshiLabs анонсировала менеджер паролей TREZOR — приложение для безопасного хранения паролей и управления ими. Оно реализовано как расширение для браузера Chrome и уже доступно всем владельцам аппаратных в рамках программы открытого бета-тестирования.

Менеджер паролей TREZOR способен обеспечить надежную криптографическую защиту независимо от уровня пользователя. Одним нажатием кнопки вы можете зашифровать свой пароль, а менеджер паролей автоматически загрузит его в ваше частное облачное хранилище, откуда вы всегда сможете скачать его в случае надобности. Отсутствие мастер-пароля в TREZOR решает главную проблему безопасности типичных менеджеров паролей — возможность доступа ко всей базе данных с помощью скомпрометированного мастер-пароля. Примеры таких атак, в том числе на хранилища RoboForm и LastPass , много раз описывались в СМИ.

Двухфакторная аутентификация с помощью приложения или по электронной почте обеспечивает дополнительную защиту, но использовать ее неудобно. Биометрическая аутентификация сама по себе может быть опасной: например, получив отпечаток пальца жертвы, злоумышленник может использовать его снова и снова, и изменить его никак не получится. Поэтому кошелек TREZOR сам выполняет функции второго фактора аутентификации, разблокируя пароли без сторонних приложений, мобильного телефона и электронной почты. Вместо того чтобы вводить мастер-пароль для разблокирования всей БД с паролями, пользователю достаточно «разблокировать» кошелек с помощью ПИН-кода, защищенного от клавиатурных шпионов. Кроме того, ПИН-код предотвращает несанкционированный доступ к самому устройству.

Безопасный доступ к облаку

Даже если ваша учетная запись Dropbox будет взломана, злоумышленнику почти наверняка не удастся прочитать сохраненные пароли. TREZOR обеспечивает дополнительный уровень безопасности, шифруя каждый пароль по отдельности с помощью уникального ключа, генерируемого самим устройством. Менеджер паролей TREZOR — это пример того, каким должен быть подход к технологиям защиты облачных хранилищ для индивидуальных пользователей.

Постоянный доступ к паролям

Менеджер паролей TREZOR автоматически синхронизирует каждый пароль с частным хранилищем Dropbox пользователя, благодаря чему получить доступ к паролям можно в любой момент с любого компьютера, подключенного к Интернету. Со временем мы реализуем поддержку и других облачных хранилищ.

Простой механизм восстановления

В TREZOR реализован легкий и безопасный способ создания резервных копий. Во время первоначальной настройки кошелек просит пользователя записать и сохранить в надежном месте фразу из 24 слов. Лист бумаги в сейфе — это все, что нужно для восстановления всех ключей на новом устройстве. В связи с этим хотелось бы напомнить, что TREZOR — это не только устройство для шифрования конфиденциальных данных, но еще и токен для безопасного входа в компьютерные системы с визуальной и физической верификацией.

Запланированные улучшения

После тестирования бета-версии в менеджер будет добавлена функция импорта/экспорта. Возможно, мы также предоставим пользователям приложение для Android — это будет зависеть от их отзывов..

О компании SatoshiLabs

Чешская компания SatoshiLabs — производитель кошельков TREZOR и разработчик ряда других передовых биткойн-проектов, таких как Coinmap и Slush Pool , первый в мире пул для майнинга биткойнов.

За последний год было украдено 4,2 миллиарда паролей. Эта из ряда вон выходящая цифра должна обеспокоить любого, кто имеет дело с Интернетом. Федеральная торговая комиссия США проанализировала, что происходит с похищенными учетными данными. После того как украденные логины к Facebook, Google, Netflix и онлайн-банкам публикуются на хакерском форуме, в среднем проходит всего девять минут до первой попытки захода на ваш аккаунт. Поскольку двое из трех пользователей используют один и тот же пароль для нескольких служб, украденный ключ открывает сразу множество дверей.

Вышеприведенное число также демонстрирует, что теперь пароли могут быть украдены не только у отдельных пользователей, попавшихся на удочку фишингового сообщения. Хакеры нацелились на крупные сервисы, что сулит им гигантскую прибыль. На прицеле оказались крупные IT-концерны, такие как Yahoo! и Uber.

Генерация надежных паролей

Национальный институт стандартов и технологий США внес коррективы в правила создания безопасных кодов. Несколько нововведений:
Длина: Надежность зависит от длины пароля. Чем он длиннее, тем лучше.
Никакой логики: Бессмысленный набор букв надежнее, чем можно подумать. Но пароль не должен быть цифровой мешаниной.
Уникальность: Используйте пароль только один раз.
Проверка: С помощью онлайн-сервиса Pwned Passwords вы узнаете, если ваши пароли используются кем-то другим или же были опубликованы.
Изменение при необходимости: При краже пользовательских данных с серверов какого-либо сервиса, чьим клиентом вы являетесь, смените пароль.

Еще совсем недавно исследования насчитывали в среднем 20–30 аккаунтов, защищенных паролем, на одного пользователя. Последние данные говорят о гораздо большем количестве. Диспетчер паролей, используемый в корпоративных целях, хранит в среднем 191 пароль для бизнес-клиентов. Но даже те, у кого всего десять аккаунтов, практически не придерживаются основного правила обеспечения защиты: пароль нельзя использовать больше одного раза.

Защита для всех паролей


Именно эту проблему помогают решить десять протестированных нами диспетчеров паролей, выступая в качестве сейфа для безопасных паролей и работая в Android, iOS и Windows. Они хранят все пароли централизованно в одном месте. В этих продуктах для защиты сейфа используется мощное AES-шифрование с практически не взламываемой длиной ключа в 256 бита. Такую базу данных можно разблокировать лишь с помощью правильного мастер-пароля. Таким образом, пользователю не требуется помнить пароль к каждому своему аккаунту, а только мастер-пароль, открывающий сейф со всеми остальными кодами.


При этом продукты, протестированные нами, работают по двум разным принципам: восемь менеджеров, среди которых тройка лидеров LastPass, 1Password и Dashlane, представляют собой онлайн-сервисы. Зашифрованная база данных паролей хранится в вычислительных центрах провайдера сервиса.

Для пользователя это самое удобное решение, поскольку пароли используются не только на стационарном компьютере, но и на смартфонах и планшетах. В таком случае для запуска синхронизации достаточно лишь ввести логин и мас­тер-пароль. Все коды будут у вас под рукой в любое время и в любом месте. Однако такие сервисы требуют от вас доверия к провайдеру и убежденности, что ему действительно недоступен мастер-пароль и нет никакой возможности получить доступ к базе данных иным образом.


Второй принцип работы, выбранный разработчиками такой популярной открытой программы, как KeePass, а также компанией Steganos для своего диспетчера паролей, - это локальное хранение базы данных паролей.

Мы рекомендуем начать с хранилища на ПК и лишь затем подтягивать мобильные устройства. Преимущество обоих локальных решений заключается в сохранении за пользователем полного контроля над сейфом. По этой причине мы удостоили KeePass высшим баллом за категорию «Безопасность». Такой метод менее удобен, поскольку вам придется самим думать о том, как получить пароли со смартфона. Однако KeePass - это единственная программа, способная взаимодействовать с различными приложениями, считывающими данный формат баз данных.

К примеру, на тестировании мы остановили свой выбор на KeePass2Android (Android) и MiniKeePass (iOS). Все другие диспетчеры паролей уже идут в комплекте с подходящими приложениями.

Двойная защита мастер-пароля

Безопасность диспетчера паролей зиждется на мастер-пароле (см. блок справа). Поэтому нам непонятно, почему половина участников нашего тестирования принимает даже такие элементарные коды, как «1234abcd».

Лишь 1Password, Dashlane, а также продукты таких известных разработчиков антивирусов, как F-Secure, Kaspersky и Avira, требуют более сложных мастер-паролей. Не менее важно защитить свой сейф и другими средствами - в этом отношении инструменты от антивирусных экспертов откровенно халтурят.

Выбор мастер-пароля

Использование предложений. Забавная реплика из сериала Net­flix или поговорка вашей бабушки станут отличной основой для вашего пароля. Вы можете также обратиться к своему хобби. Неплохой идеей может стать фраза «I love read Chip magazine».

Использование заглавных и прописных букв. Правильная орфография -
скорее недостаток для пароля. «ILovereadChipMagazine» с позиции безопасности выглядит лучше.

Встраивание специальных символов. Можно добавить и парочку спе­циальных символов: «ILove/readChipMagazine2018$».

Двойная аутентификация. Обязательно задействуйте двухфакторную аутентификацию, чтобы дополнительно защитить доступ к диспетчеру паролей.

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

Вне зависимости от этого, общая безопасность диспет­черов находится на высоком уровне. Лидеры нашего теста, LastPass, Dashlane и Keeper Security, покоряют отлично реализованными проверками надежности используемых паролей, вычисляют дубликаты и даже предлагают возможность бэкапа. Все продукты не только сохраняют учетные данные, но и создают безопасные пароли - в каждый из них интегрирован собственный генератор.

Однако на практике их технологии отличаются: LastPass, KeePass и Avira Password Manager лучше всех справляются с задачей. Их генераторы невозможно не заметить, а кроме того, они наглядно отображают длину пароля. Не столь удобно мобильное решение от Kaspersky: в мобильных приложениях генератор отсутствует, таким образом, надежные пароли можно создать лишь в настольной версии.

Учетные данные для приложений и веб-сервисов


В плане удобства управления лидируют веб-сервисы, при этом речь идет не только об упрощенной синхронизации. В частности, 1Password, LastPass и Dashlane демонстрируют, как нужно правильно создавать приложения и постоянно внедрять новейшие технологии. К примеру, все три провайдера очень быстро адаптировали свои приложения к сканеру Face ID на iPhone X. Вдобавок ко всему, биометрическая разблокировка гораздо удобнее, чем ввод длинных мастер-паролей.


Все диспетчеры паролей предлагают автозаполнение учетных данных в браузере для входа на сайт. Для программ под Windows и приложений на смартфонах и планшетах этот метод не работает. Здесь проще всего будет скопировать и вставить данные в соответствующие поля. Android, в отличие от iOS, позволяет это сделать легко. Для системы от Apple разработчикам приложений необходимо интегрировать особые функции для работы с диспетчерами паролей. Во всяком случае, для наших лидеров - продуктов LastPass, 1Password и Dashlane - существует длинный список поддерживаемых приложений, которые обходятся без буфера обмена.

У всех решений существует функция поиска для быстрого обнаружения данных. Однако лишь 1Password, KeePass и Steganos позволяют интегрировать несколько баз данных, благодаря которым пользователь может, к примеру, разделить личные и рабочие аккаунты. Очень полезна и функция «Избранное» для отображения часто используемых паролей - отмеченные таким образом данные всегда находятся наверху в списке.

Вход в Windows без пароля

Диспетчеры паролей сохраняют все учетные данные. Ситуация со входом в Windows сложнее, поскольку у вас пока нет доступа к сейфу. Компания Microsoft интегрировала в «десятку» функцию Windows Hello, благодаря которой аутентификация пользователя может осуществляться по сканированию отпечатка пальца, распознаванию лица или радужной оболочки глаза. Такие устройства, как , уже распола­гают техническими средствами, поскольку обычной веб-камеры недостаточно.

Лучше, чем браузерные хранилища

Все участники нашего теста интегрируются в браузеры Chrome и Firefox, а вот с Microsoft Edge могут совладать лишь четыре участника теста: LastPass, 1Password, Keeper Security и True Key. Кстати о браузерах: их встроенные диспетчеры представляют собой лишь хранилище, в котором отсутствуют важные дополнительные функции - например, генератор паролей. Мы советуем обратиться к специальным инструментам, чтобы не потерять покой и сон из-за ужасающих новостей о миллионах украденных учетных данных.

"Windows IT Pro/re", № 7, июль, 2016
Статья с упоминанием eToken от компании "Аладдин Р.Д."

О проблеме паролей написаны тысячи статей. Но пользователи все равно выбирают самые простые. Год тому назад в сеть попали базы паролей Yandex и Mail.ru. Как показал анализ этих данных, наиболее популярными оказались самые простые для угадывания пароли (см. рисунки 1 и 2).

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

На помощь пользователям пришли менеджеры паролей. Однако программы-менеджеры паролей подвержены все тому же недостатку. Вероятность взлома менеджера паролей зависит как от устойчивости мастер-пароля (основного пароля, с помощью которого осуществляется доступ к содержимому базы менеджера паролей), так и от наличия ошибок в программной реализации менеджера паролей. Да и от троянца-кейлоггера, с помощью которого можно перехватить пароль в момент его ввода в менеджер паролей, тоже никто не застрахован.

Именно поэтому были изобретены аппаратные менеджеры паролей. Нельзя сказать, что появились они только сегодня. Об использовании eToken от компании "Аладдин Р.Д." я писал ещё, наверное, лет 10 назад. Однако использовать его можно было только после установки соответствующего программного обеспечения, к тому же требовалось физическое подключение к конкретному компьютеру, что значительно ограничивало применение. Да и о подключении к смартфону речь тогда, безусловно, не шла. Прошло немало времени, появились новые устройства, и одно из них мы и рассмотрим в данной статье.

Беспроводной ключ Hideez Key (см. рисунок 3) предназначен для работы как с компьютером под управлением Windows, так и со смартфонами и планшетами под Android. На этот раз речь пойдет о работе под Windows.

Рисунок 3. Hideez Key

Для начала перечислим технические характеристики:

  • процессор Nordic NRF52;
  • связь Bluetooth 4.0 LE;
  • питание: элемент питания CR2032;
  • срок работы от одной батареи - до 6 месяцев;
  • габариты и вес - 31х31х7,5 мм, 8 г;
  • рабочая температура от -10 °C до +40 °C;
  • кнопка - одна LED, два цвета: красный и зелёный.

Hideez Key предназначен для совместной работы с устройствами, отвечающими следующим требованиям:

  • адаптер Bluetooth версии 4.0 и выше с поддержкой режима Low Energy.
  • операционная система:

Microsoft Windows 8.1;

Microsoft Windows 10;

Android 4.3 и выше;

Подключение устройства к компьютеру

Для подключения устройства к компьютеру используется процедура стандартного подключения устройства Bluetooth. Для подключения достаточно включить устройство однократным нажатием кнопки и перейти в меню "Параметры", Bluetooth. При этом ваш компьютер перейдёт в режим обнаружения устройств (см. экран 1).

После подключения устройства вы должны установить необходимое программное обеспечение Hideez Safe. В дальнейшем вам будет предложено создать учётную запись на сайте www.hideez.com (см. экран 2).

Экран 2. Регистрация с учётной записью Hideez

После этого вы сможете настроить менеджер паролей и аутентификацию в Windows.

Аутентификация пользователя

Стандартной схемой аутентификации пользователя на компьютере под управлением Windows является применение пары из имени пользователя и пароля. Вместе с тем можно привязать электронный ключ Hideez Key к пользовательской учётной записи. Ввод пароля в окне блокировки Windows осуществляется автоматически при достижении заданного уровня сигнала. После установки приложение работает постоянно. При этом в окне приложения можно увидеть уровень приёма сигнала для ключа Hideez Key.

Для включения функции блокировки вы можете открыть в настройках закладку Locker (см. экран 3) и установить флажок Use this device to Lock/Unlock the PC, а затем задать минимальный уровень сигнала, по достижении которого компьютер будет заблокирован (по умолчанию 40%).


Экран 3. Настройка Locker

Кроме того, необходимо задать максимальный уровень сигнала, по достижении которого компьютер будет разблокирован (по умолчанию 80%), и указать имя пользователя (Get current name). После этого потребуется ввести пароль к учётной записи, который в свою очередь не будет храниться нигде, кроме Hideez Key. Учтите, что на компьютере данный пароль не хранится!

При уменьшении уровня сигнала ниже указанного компьютер будет заблокирован (что аналогично нажатию комбинации клавиш "Win + L"). При усилении сигнала компьютер будет разблокирован автоматически. Пользователь может разблокировать его и вручную, введя пароль с клавиатуры.

Менеджер паролей

При использовании менеджера паролей устройство Hideez Key позволяет хранить до 1000 паролей длиной до 16 символов. Пароли в этом случае хранятся не на компьютере, а в самом устройстве и вводятся непосредственно в поле ввода. Естественно, вы сможете вводить пароли и вручную. Программа Hideez Safe ведет список приложений, а соответствующие им пароли хранятся в зашифрованном виде в устройстве Hideez Key. Соотнесение строки из списка программ с реальным запущенным приложением выполняется по названию активного окна Windows.

Запись пароля

Для записи пароля откройте программу Hideez Safe, войдите в настройки выбранного устройства и перейдите на закладку менеджера паролей Password manager. Запустите программу или окно браузера, пароль к которому нужно записать. Вернитесь к настройкам паролей. Нажмите кнопку "Добавить пароль" (Add password) и после появления диалогового окна укажите мышкой на окно программы, ожидающей ввода пароля. Название программы будет сохранено. Введите пароль и нажмите кнопку "Записать пароль на устройство". После получения подтверждения пароль будет успешно сохранен (см. экран 4).


Экран 4. Password Manager

Редактирование, удаление и проверка списка паролей выполняются аналогично добавлению с помощью кнопок Edit и Delete. В некоторых случаях список паролей в программе Hideez Safe и в Hideez Key может различаться, например после замены или сброса настроек устройства. Для проверки соответствия списков в программе и в устройстве необходимо нажать кнопку "Проверка списка паролей". После этого можно редактировать или удалить нужные пароли в списке.

Ввод пароля из Hideez Key исключительно прост. Достаточно поместить курсор в поле ввода пароля и дважды нажать кнопку на Hideez Key. Hideez Safe проверит наличие активной программы в списке паролей, считает пароль из устройства и введёт его туда, где установлен курсор.

Использование устройства как приложения для аутентификации в двухфакторной аутентификации также возможно, например в ходе двухэтапной аутентификации Google, когда в ответ на введённый пароль служба Google присылает вам SMS с шестизначным цифровым кодом. Если у вас в руках смартфон от Apple или Google, то вы сможете использовать приложение-генератор таких кодов. Но как быть, если это смартфон с другой операционной системой, например Windows Phone? В таком случае вы сможете использовать Hideez Key, поддерживающий создание одноразовых паролей (One-time password) согласно стандарту RFC 6238. В одном устройстве Hideez Key на сегодня предусмотрена одна учётная запись для генерации пароля типа OTP.

Для использования Hideez Key в качестве такого генератора паролей необходимо создать и записать в устройство ключ (Private OTP-key). Для этого нужно сделать следующее:

  1. Зайдите в настройки безопасности своей учётной записи https://accounts.google.com/b/0/SmsAuthConfig (см. экран 5).
  2. Включите для своей учётной записи двухфакторную аутентификацию (для корпоративных клиентов это потребует дополнительного разрешения администратора), как показано на экране 6.
  3. На ваш смартфон придёт SMS с кодом подтверждения (см. экран 7).
  4. Выберите мобильное приложение как основной способ получения кодов (см. экран 8).
  5. В окне "Настройка Google Authentificator" получите зашифрованный QR-код, выберите ссылку "Не могу сканировать QR-код" и получите текстовый 32-разрядный код (ваш секретный ключ учётной записи Google), как показано на экране 9.
  6. В настройках Hideez Safe выберите закладку OTP, вставьте скопированный код в поле OTP Key и нажмите кнопку "Сохранить ключ на устройстве" (см. экран 10).
  7. Наберите код (курсор при этом должен быть в поле "Код"), и туда будет вставлен код из устройства (см. экран 11).

Экран 11. Ввод шестизначного кода подтверждения

Если вы хотите использовать Hideez Key и Google Authenticator одновременно на двух устройствах, то вам нужно устанавливать ключ на всех устройствах.

Ложка дёгтя

Аппаратный менеджер паролей - это, конечно, замечательно. Но проблема в том, что он привязан к одному компьютеру и одному телефону. А если вы работаете не только дома (или на работе), то пароли вам в любом случае придётся хранить, как минимум, в двух местах. Ещё более неудобно использовать данное устройство как генератор ОТР. Почему? Да потому что ОТР предполагает именно переносимость. А что мы имеем на самом деле? Фактически генератор работает только для одного устройства. А ведь Google применяет концепцию доверенных устройств. То есть если я доверяю этому устройству, то вводить второй фактор (SMS, OTP) я буду однократно. И больше спрашивать меня никто не будет. А если не доверяю? Тогда проще использовать SMS, потому что Hideez Key я привязываю к конкретному устройству. И ни на чем другом использовать его не могу.

Немало заметок и обсуждений посвящены непростому вопросу безопасного хранения паролей, тема интересная и, похоже, актуальной будет ещё долго. Существуют различные программные решения для хранения паролей, о них довольно часто пишут на Хабре (например и ), однако многим из них, как нам кажется, в той или иной степени свойственны следующие недостатки:

  • закрытый код снижает доверие и вероятность оперативного устранения уязвимостей
  • для автозаполнения нужно ставить дополнительный софт
  • после ввода мастер-пароля вся база открыта и доступна, в том числе для вредоносного ПО, что особенно актуально на недоверенных устройствах
  • использование мобильных приложений для хранения паролей все равно подразумевает ручной ввод с клавиатуры, например когда требуется залогиниться на стационарном ПК
  • автозаполнение невозможно в некоторых случаях (в bios, консоли)
Мы пришли к выводу, что наиболее удобным решением будет простой и недорогой девайс, позволяющий аппаратно хранить и вводить логины/пароли на любые устройства, без установки какого-либо ПО.

Для начала мы, конечно же, прочитали весь интернет, чтобы понять, кому еще приходила в голову идея хранить и вводить пароли аппаратно, и как она была реализована. Найденные варианты можно условно разделить на следующие категории:

  • шифрованные накопители, по сути - просто флешки с паролем (например, такая). Можно безопасно хранить документы, но об автоматическом вводе паролей речь не идет
  • устройства с биометрической идентификацией (пример). Биометрическая идентификация выглядит привлекательно, однако она менее универсальна, чем символьный пароль (например, если надо удаленно предоставить кому-то доступ к устройству, передача отпечатка пальца станет настоящей проблемой), к тому же дополнительные датчики увеличивают стоимость изделия. В случае компроментации сложно быстро сменить отпечатки
  • программные менеджеры паролей с аппаратным ключом-токеном, который дает доступ в базу (например) обладают теми же недостатками, что и программные менеджеры без ключа-токена
  • устройства для ввода 1-4 паролей и их генерации (пример , ). Наиболее близкие решения. Из недостатков следует отметить ограниченное количество хранимых паролей а также управление исключительно кнопками на устройстве, что далеко не всегда удобно.
Ни одно из найденных устройств в полной мере не соответствовало нашей задумке. Мы обрадовались - и давай думать дальше.

Идея

Не так давно для корпоративных задач хранения паролей вместо бумажек, браузеров и биологической памяти мы стали использовать KeePass . Вполне довольные удобством и универсальностью этого продукта, мы решили приспособить его для задач аппаратного хранения паролей, портировав на микроконтроллер.
Однако, осталось огромное количество вопросов. Каким образом выбирать нужную запись в базе на устройстве? Как показать пользователю, какая запись выбрана? Стоит ли размещать на корпусе устройства кнопки? Экран? Как вообще оно должно подключаться к компьютеру? К планшету? К телефону?

От экрана отказались сразу. Если уж у пользователя возникла необходимость вводить пароль - скорее всего, экран у него уже есть. Что касается способов подключения, то мы решили не рассматривать беспроводные интерфейсы, ввиду потенциальной их уязвимости для перехвата.

Для управления мы будем использовать стандартную клавиатуру, а для непосредственного ввода сохраненных паролей в формы - эмулировать клавиатурные команды. “Перехват” управления будет происходить при вводе специальной комбинации клавиш. По умолчанию мы выбрали сочетание Ctrl + Shift + ~ , потому что оно удобно для нажатия и практически нигде не используется. Проект получил название “Pastilda” (от password, tilda), у нас оно ассоциируется с чем-то вкусным и сладким, а также помогает не забыть главное сочетание клавиш для работы с устройством.

Находясь в пассивном режиме Пастильда транслирует все сообщения от клавиатуры к ПК без изменений, ожидая нажатия специальной комбинации. После ввода комбинации устройство входит в активный режим. Если в этот момент курсор находится в поле для ввода текста - это может быть поле “Логин”, или любое другое текстовое поле - в нем появляется одно-строчное текстовое меню.

Для работы с базой KeePass, хранящейся в памяти Пастильды, пользователь вводит мастер-пароль, а затем при помощи навигационных клавиш выбирает название интересующего его аккаунта и нажимает ввод. Пастильда вводит нужные логин и пароль в соответствующие поля. При этом расшифровка базы происходит на устройстве, и целевая система не получает доступа к мастер-паролю и ко всей базе. Выход из активного режима происходит либо автоматически, после ввода пароля, либо после повторного нажатия комбинации “Shift + Ctrl + ~”. Да, кстати, комбинации можно придумать свои.

Реализация 0.1

Как всегда много чего хочется реализовать, а начать решили с малого. Ревизия 0.1 предназначена для проверки идей, удобства использования и всяческого баловства. В текущей версии запланирован следующий минимум функций:
  • составное USB устройство (HID+Mass Storage)
  • USB host
  • работа с одной базой KeePass
  • однострочное меню
  • FAT16.

Схема




Тут всё просто - контроллер Stm32f405, два разъема и флешка на SPI. Так же немного защиты, разъем SWD и, конечно же, RGB светодиод. Выбор компонентов не вызвал затруднений - STM мы просто любим, похоже, единственный, кто реализовал два аппаратных USB в микроконтроллере, а память взяли какая была.

Плата


Все компоненты в обычных корпусах, чтобы плата была дешевая и быстрая в производстве. Размер 40х17 мм, 4 слоя. Текущая версия платы выглядит вот так:


Софт

На данный момент реализовано:
  • USB host, для того чтобы распознавать подключенную к устройству клавиатуру и прокидывать сообщения от нее дальше в ПК
  • составное USB устройство (msd + hid): в режиме Pastilda устройство должно уметь быть клавиатурой, кроме того, быть всегда доступным как внешний диск, для удобного добавления и удаления паролей (Попутно @anaLazareva решила проблему с usb_msc libopencm3.
Ждет своей участи:
  • FAT для чтения данных, записанных во флеш память, чтобы мы могли ходить по директориям и брать нужный пароль
  • KeePass расшифровка, работа с записями
  • меню.
О своих суровых буднях программисты напишут в отдельных статьях.

Что дальше?

Дальше - больше. Хочется реализовать работу с любыми устройствами, понимающими внешнюю клавиатуру. Мы уже протестировали работу нашего прототипа с Android-смартфоном через USB OTG, всё работает прекрасно. Для удобства навигации по меню при использовании Пастильды с мобильными устройствами сделаем отдельный USB-модуль с колесом-кнопкой.

Ещё одна идея - маленькая гибко-жесткая печатная плата, которая заправляется прямо в разъем USB, оказываясь между контактами host и device. Жесткий кусочек платы с компонентами наклеивается на корпус штекера device. Таким образом устройство будет довольно сложно обнаружить. Впрочем, зачем бы нам это? Просто идея.

Встроенную память Пастильды можно использовать для хранения данных (если скорость не особо важна), и тут возможны варианты: просто USB накопитель, который виден всегда, когда устройство подключено, либо шифрованный накопитель. Базы KeePass, файлы ключей и т.п. предполагается хранить на этом пространстве.

Open all

Код выложен на github , вместе с железом. Лицензия GNU GPL. Естественно, можно пилить что-то свое на основе этого проекта, нам в голову пришли такие идеи:
  • эмуляция kbd+mouse для гейм-читинга
  • потоковое аппаратное шифрование USB-флеш.

Главная цель этой статьи - услышать ваше мнение, не стесняйтесь в комментариях!

UPD 27.06.2017:

  • Репозиторий проекта Пастильда переехал сюда . Недавно был опубликован релиз 1.0.
1

@sam901 , ну так об этом и пишет Артём. Не хотите чтобы у программы вместе с владельцем “сменились правила”, держите свои пароли при себе. Иначе где гарантия, что однажды их не продадут вместе с программой? :)

Хотя, повторюсь, я не силён юридически, но на мой взгляд это обман пользователей, которые платили деньги за программу и на западе их возможно было бы засудить. Хочешь продать бизнес, продавай, а данные пользователей и доступ к ним должны остаться у владельцев. Как минимум должна быть возможность их выгрузить.

А раз “такое происходит повсеместно”, приведите плз хоть пару примеров. :)

@Soloqub , да хотя бы skype. Был p2p сервис. МС выкупили и сменили на традиционную централизованную клиент-сервер архитектуру. И обоих вариантов есть свои плюсы и минусы. Для кого-то плюсы p2p были очень важны и выбора два – соглашаться на смену правил или менять сервис. Никто поддерживать старый протокол не собирается.

Ну и куча примеров, когда сервисы выкупают, закрывают и все. Нет больше данных пользователей, девайся куда хочешь. Picasa, например. И хорошо, если план миграции какой-то предусмотрен.

У меня скорее встречный вопрос, а что не так? Бизнес не обязан делать ничего сверх того, что обязывают законы. А дальше есть EULA, где все отлично прописано, кто кому и что должен. И то что старая версия перестанет работать. И то что в новой версии надо новое EULA подписать, которым даешь согласие на отправку своих данных на сервер и т.д. и т.п. Не согласен – не подписываешь и удаляешь приложение.

Выбор сервиса это всегда компромисс. Поэтому статья и выглядит довольно странно, т.к. однобокая и параноидальная. Есть выбор – есть полностью оффлайн сервисы вроде keepass. Есть облачные с разными правилами работы. lastpass, которым я пользуюсь, облачный, но на ПК хранит оффлайн версию. Даже при отсутствии интернета доступ к паролям остается, на серверах открытых паролей нет, мастер-пароль тоже не хранят у себя и т.д. Вместо паранойи и ограниченного рассмотрения вопроса, лучше бы разобрались с выбором на рынке, а не гребли всех в одну кучу.

@sam901 , вы, видимо, не очень разобрались в данной ситуации. Вкармане и была полностью офлайновой программой, хранившей данные на устройствах пользователей. После выкупа Тиньков “предложил” перенести все данные к нему на сервера (теперь они будут доступны только онлайн), либо забыть о них.

Никакой возможности просто забрать своё не предоставлено. Фактически Тиньков купил не бизнес (он сомнителен), а именно данные пользователей. И тут возникают большие сомнения в законности такой покупки.

Никакого сравнения со Скайп тут быть не может. Думаю, 99% пользователей Скайп даже не заметили миграции на централизованную архитектуру. А те кто заметили, лишились возможности использовать сервис, но не лишились ничего принадлежащего им, в отличие от пользователей Вкармане.

@Soloqub , вот поэтому и стоит читать EULA. Потому что там наверняка есть строчка на согласие на обработку всех данных и еще кучу всего. Но никто же не читает, зато в суд бежать все хотят.

Что до разобраться, я вел речь про смену правил игры и это нормально и происходит повсеместно. Мне не нужно разбираться в деталях конкретной ситуации, которая аналогична по большей части.

Что до миграции скайпа, вы явно не понимаете сути такой миграции. p2p архитектура означает невозможностью владельцем сервиса записывать/прослушивать разговоры. Трафик идет напрямую от устройства к устройству. Смена архитектуры означает полный контроль МС над речевым трафиком, полный доступ к нему со стороны спецслужб, рекламных ботов и т.д. и т.п. Это существенно и не менее серьезно, чем внезапная закачка своих документов в облако.

Ну и не надо передергивать факты. Никто в вашем примере ничего не лишился. В онлайне доступно – доступно. Все.

@sam901 , EULA читать, конечно, нужно, это тоже не истина в последней инстанции. Иначе, пользуясь тем что их никто не читает, туда можно было бы вписать всякое, что скачивая приложение ты передаёшь им в собственность квартиру и пр. Поэтому вопрос не только в EULA, а в принципе в законности такого действия.

И перестаньте сравнивать мягкое с солёным. Скайп никогда не позиционировал свои каналы связи как защищённые. Никто его и не использовал как таковой.
Переход к централизованной архитектуре не более чем внутренняя кухня Микрософт. Пользователи над такими вещами не задумываются, так же как не задумываются по каким роутам ходят пакеты от них до сайта iphones и обратно. Им всё равно.

Что касается Пикасы, этот сервис просто прекратил работу, притом Гугл сильно заблаговременно предупредил об этом. Пользователи не лишились фоток, которые лежали локально и были добавлены в программу, не обнаружили что эти фотки будут закачаны на сервера неизвестного банка и будут доступны только после принятия условий этого банка. Эти случаи вообще нельзя сравнивать.

И передёргиваете факты вы. Доступ к документам доступен только для тех, кто полностью принимает условия Тинькова и отдаёт ему необходимые данные, например номер телефона.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows