Пуск ПасТильды на Плате Olimex-H407

в 22:26, , рубрики: keepass, Olimex-STM32-H407, pastilda, security, stm32, аппаратный менеджер паролей, пароль, Пастильда

Существует одна очень замечательная учебно-треннировочная электронная плата Olimex-STM32-H407. В этом тексте я покажу как на ней можно запустить прошивку культового российского продукта Пастильда (Pas~).

Что такое Пастильда (Pas~)?

Пастильда - это универсальный аппаратный хранитель паролей для всяческих сайтов. Это устройство посредник между USB клавиатурой и персональным компьютером PC, которое по команде с клавиатуры вставляет нужный логин+TAB+пароль (или просто пароль) для конкретного сайта. Пользователи пастальды запоминают только один пароль в жизни - это пароль для доступа к пастильде (он же пароль к KeePass файлу) . Далее устройсово извлекает нужный сложный уникальный для каждого сайта пароль из KeePass файла и автоматически набирает его в PC.

При этом персональный компьютер (PC) на полном серьезе думает, что пароль так быстро набрали вручную. Но мы, то знаем, что это набрала Пастильда автоматически.

Таким образом, можно набирать пароли, где угодно. Все пароли будут разные и запредельно сложные. На сайте интернет магазина, в электронную почту и даже для входа в операционную систему. Понимаете ?..

В чём проблема?

Проблема в том, что оригинальная Пастильда стоит дорого: 5k RUR. В нашей развивающейся стране (в России) далеко не все могут себе позволить покупку электроники стоимостью в 5k RUR.

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

Поэтому надобно придумать способ пользоваться Пастильдой на более доступном и дешевом железе.

А какую возможность, любезнейшим образом, предоставляет болгарская электронная плата Olimex-STM32-H407. Вот с ней и пришлось работать...

Итак, танцуем от печки...

Аппаратная часть

Что надо из аппаратуры?

Для того чтобы подготовить плату Olimex-STM32-H407 к работе c прошивкой Пастильда надо следующий перечень аппаратуры. Всё это легко приобретается на рынке

#

Оборудование

Комментарий

1

ST-LINK/V2 ISOL

Программатор

2

JTAG шлейф 20пин для программатора

Для соединения программатора и PCB Olimex

3

Кабель USB-А-USB(mini)

Кабель для соединения LapTop(а) и программатора

4

Кабель USB-А-USB(mini)

Кабель для соединения LapTop(а) и PCB Olimex

5

USB Клавиатура

Для подключения её к Пастильде

6

Персональный компьютер (Например LapTop)

Для запуска утилиты обновления прошивки и насыщения KeePass файла паролями

7*

Переходник USB-UART

Для просмотра лога загрузки прошивки и для подключение а UART-CLI

8

Электронная плата Olimex-STM32-H407

Целевое устройство, которое и будет вертеть прошивку с приложением Пастильда

9

Micro SD карта

Съёмное хранилище зашифрованных паролей, которое хранит KeePass файл с расширением *.kdbx

Электронная плата Olimex-STM32-H407

Вы узнаете нужную Вам электронную плату вот по этой фотографии.

Olimex-STM32-H407 в натуре. Красота несусветная

Olimex-STM32-H407 в натуре. Красота несусветная

Изделие можно купить в интернет магазине Olimex буквально за 2144 RUR. Это настоящая электронная парта для изучения микроконтроллеров.

Пуск ПасТильды на Плате Olimex-H407 - 2

Вот так выглядит блок-схема этой твердотельной электронной платы Olimex-STM32-H407.

Пуск ПасТильды на Плате Olimex-H407 - 3

В этой электронной плате есть вся необходимая аппаратная начинка для того, чтобы запустить приложение реализующее Пастильду: USB host, USB device, SD micro и LED.

Пуск ПасТильды на Плате Olimex-H407 - 4

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

Пуск ПасТильды на Плате Olimex-H407 - 5

Программная часть

Как и в любой Hi-Tech разработке помимо железа есть и софт.

Что надо из сотфвера?

Программа или бинарный файл

Пояснение

1

Программа KeePass.exe

Клиентская программа для работы с базами данных паролей формата KeePass (*.kdbx файлы)

2

ST-LINK_CLI.exe

Утилита перепрошивки STM32 микроконтроллеров от вендора. (CLI версия )

3

OS Windows

Для запуска утилит производителя чипа ST

4

STM32 ST-Link Utility.exe

Утилита перепрошивки STM32 микроконтроллеров от вендора (GUI версия )

5

olimex_stm32_h407_mbr_gcc_m.hex

Первичный загрузчик платы Olimex

6

olimex_h407_bootloader_gcc_m.hex

CLI загрузчик для платы Olimex

7

olimex_h407_freertos_pastilda.hex

Generic прошивка Пастильды для платы Olimex-STM32-H407

Подготовка *.kdbx файла с базой данных

Чтобы работать с устройством предварительно надо на SD карту закинуть *.kdbx файл с зашифрованной базой данной с паролями.

Файл создается и заполняется как и в любой другой GUI утилите на Windows. Однако есть один момент.

Данная прошивка работает не со всяким *.kdbx файлом keepass. Перед сохранением файла надо удалить из него служебную информацию (метаданные). Для этого надо зайти в Tools->Database Maintenance. И нажать на кнопки Entry history Delete и Delete object information. И сохранить файл. Таким образом, в финальном keepass файле *.kdbx будет только необходимая информация.

Загрузка прошивки

Перед тем как залить прошивку Пастильды надо накатить загрузчик. Ввиду специфики разметки секторов микроконтроллеров семейства STM32F4x тут получилось целых два загрузчика. Первичный загрузчик (MBR) и вторичный загрузчик (BootLoader).

Задача первичного загрузчика - это только лишь вызвать вторичный загрузчик. Задача вторичного загрузчика - вызвать generic приложение и позволить обновлять Generic через UART3.

Вы спросите: "а почему бы первичному загрузчику не вызвать приложение?"

Ответ прост. Вызвать, то он вызовет, а вот обновить по UART не сможет. В этом случае первичный загрузчик бы не поместился в 16kByte-32kByte Flash памяти.

Дело в том что обновление прошивки происходит через CLI. А это работа с текстовыми протоколами. Задача загрузчика принять приложение через UART-CLI и прописать его в боевую ROM память. А этот функционал практически нереально поместить в 16kByte.

В довесок к этому, первые сектора Flash памяти все маленькие и поэтому уже задействованы для on-chip NVRAM. Вначале Flash памяти просто отсутствует непрерывный диапазон нужного размера.

А в конце ROM присутствует огромный сектор 128kByte прям как будто специально заложен для полноценного BootLoader(а). Поэтому вот так и появились два загрузчика. А приложение находится между ними. На выходе получилось три сборки для одного устройства. Вот такие вот порожки с капустой. Понимаете?..

Название файла

Пояснение

стартовый адрес

Size, kByte

Sector

1

olimex_stm32_h407_mbr_gcc_m

MBR

0x08000000

32

0

2

Тут прошивка хранит параметры

NVRAM

0x08008000

32

2

3

olimex_h407_bootloader_gcc_m

BootLoader

0x080E0000

128

11

4

olimex_h407_freertos_pastilda

Generic Application

0x08010000

768

4

--

--

--

Итого:

960kByte

--

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

А как, собственно, залить *.hex прошивку в STM32 микроконтроллер указанными утилитами можно почитать методички от производителя микроконтроллера ST или от производителя электронной платы Olimex.

Итоги

В сухом остатке, удалось портировать прошивку аппаратного менеджера паролей (Пастильду) на широко распространённую болгарскую учебно-тренировочную твердотельную электронную плату Olimex-STM32-H407.

Это паллиативное решение позволяет сэкономить Вам 3000 рублей на покупке оригинальной Пастильды, которая, к слову, стоит 5000 RUR. Таким образом монополия Третьего Пина в какой-то степени ликвидируется.

Бинари прошивки можно скачать по ссылке [1] на github.com. Если у Вас появятся пожелания к улучшению функционала прошивки, то пишите в комментариях. Я с энтузиазмом внесу улучшения и выкачу новый вариант бинарей.

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

Использование аппаратных менеджеров паролей окупится сторицей

Словарь

Акроним

Расшифровка

NVRAM

Non-volatile random-access memory

MBR

Master Boot Record

SD

Secure Digital

PC

personal computer

CLI

Command-line interface

USB

Universal Serial Bus

LED

Light-emitting diode

RUR

Russian ruble

Ссылки

Автор: aabzel

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js