Аппаратный ключ шифрования за 3$ — возможно ли это?


Итоговый результат — ключ размером с флешку

Повсеместное шифрование и, как следствие, обилие ключей заставляет задуматься об их надежном хранении. Хранение ключей на внешних устройствах, откуда они не могут быть скопированы, уже давно считается хорошей практикой. Я расскажу о том, как за 3$ и 2 часа сделать такой девайс.

Что значит картинка
Это из Гарри Поттера. На фото изображены крестражи. Цитата из фильма: «Крестраж — это предмет, в котором человек спрятал часть своей души… помещает её в предмет и он будет защищен, если на него нападут ...». Личные данные, которые мы все пытаемся защитить, вполне заслуженно можно сравнить с частью души)

Кратко о принципах работы


Криптография дает нам возможность скрывать то, что мы хотим отправить, убедиться в том, что мы общаемся именно с тем, с кем мы думаем и много других интересных вещей. Обычно для того, чтобы все это хорошо работало от нас просят только одно — держать в секрете наши ключи шифрования. Звучит просто, не правда ли? Что ж, давайте посмотрим как же можно припрятать наши ключи:

  • Сохранить в файлике на рабочем столе — старый и проверенный годами способ записать что-то. Проблема в том, что помимо самого пользователя еще куча других программ имеет доступ к файлам на вашем рабочем столе. И если вы совершенно уверены в том, что все они делают то, для чего они предназначены, не собирают о вас никакие данные и попросту не сливают их в сеть — эта статья не для вас.
  • Менеджеры паролей — по-сути такое же хранение в файлике, просто он теперь зашифрован и чтобы получить доступ нужно знать пароль. Уже неплохо, но раз менеджер паролей запускается на вашем компьютере, то незашифрованные ключи попадают в оперативную память, откуда могут быть украдены из-за какой-нибудь уязвимости ОС
  • Записать на бумажку — удивительно, но этот способ выглядит немного более безопасным. Ключи не хранятся на вашем компьютере, кишащем вирусами. Каждый раз, когда вам нужно использовать ключ вы просто вводите его с клавиатуры. Однако, если ваши ключи довольно длинные(как например ssh-ключи) это может стать проблемой. Да и кейлоггеры не дремлют

Как видно, основная проблема состоит в том, что ключи либо непосредственно хранятся на вашем компьютере либо вводятся туда, посредством клавиатуры, флешки и т.п. Но, возразите вы, а как же тогда мой компьютер будет шифровать данные, если он не знает ключа? Правильный ответ — никак. Решение уже давно придумано. Главная идея в том, чтобы подключить к компьютеру специальное устройство, которое будет само шифровать данные. А компьютер будет только отправлять данные и получать результат. Так работают, например, многие смарт карты.



Необходимые компоненты


Итак, приступим. Собирать наш девайс мы будем на недорогом и достаточно популярном микроконтроллере серии STM32. Конечно, можно самому изготовить печатную плату но мы же хотим управиться за 2 часа? Так что возьмем уже готовое решение — программатор ST-Link v2. Выглядит этот девайс вот так.



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

Итого, нам потребуется:

  • Программатор ST-Link v2 — 2 штуки
  • Паяльник
  • Немного проводов — как правило подходящие провода уже идут в комплекте с ST-Link
  • Linux, для того, чтобы скомпилировать и залить прошивку

Компилируем прошивку


Итак, начнем с софтварной части — сборке прошивки для нашего ключа. Исходные коды прошивки можно найти в этом репозитории. Я бы посоветовал скачать последнюю стабильную версию(её можно найти во вкладке tags). Можно склонировать репозиторий либо скачать в виде zip архива. Разминаем пальцы, запускаем терминал и переходим в папку с проектом. Переходим в папку src

$ cd src

Для того чтобы скомпилировать и загрузить прошивку нам нужно установить несколько пакетов:

  • arm-none-eabi-gcc
  • arm-none-eabi-newlib
  • openocd

Я использую пакетный менеджер pacman, в моем случае это выглядит вот так


$ sudo pacman -S arm-none-eabi-gcc
$ sudo pacman -S arm-none-eabi-newlib
$ sudo pacman -S openocd

Если Вы сидите на Ubuntu — используйте apt.

Напомню, что мы находимся в папке src проекта.
Запускаем configure скрипт

$ ./configure --vidpid=234b:0000

Запускаем утилиту make и наблюдаем как компилируется наша прошивка.

$ make

После компиляции появится папка build, а в ней файл gnuk.elf — он-то нам и нужен.

Загрузка прошивки на устройство


Теперь, когда у нас есть готовый файл с прошивкой нам нужно только загрузить её на устройство. Для этого, нам придется немного поработать паяльником. Не беспокойтесь, особых навыков тут не потребуется, всего-то припаять 4 проводка.

Итак, берем один из программаторов и стягиваем с него корпус. Выбранный программатор и будет нашим донором. Вот что мы найдем внутри



Обратите внимание на 4 контакта на плате. К ним нам нужно будет припаяться. Я рекомендую использовать для этого провода, которые идут в комплекте с ST-Link. Зачищаем провода с одного конца и припаиваем их к контактам. Если нам повезло, то на плате будут обозначения этих контактов.

"

Теперь, второй конец проводов подключаем к оставшемуся целым программатору. Если вам повезло, то просто подключаем провода в соответствии с надписями:

GND к GND
3.3V к 3.3V
SWDIO к SWDIO
SWCLK к SWCLK

Если надписей на плате не оказалось, то прийдется тыкать наугад воспользоваться тестером. С его помощью можно легко найти GND(он соединен с GND на выводах программатора-донора), аналогично 3.3V. Остальные два провода прийдется подключать наугад. Благо, вариантов всего 2. В итоге, получается что-то похожее на это



На этом фото синий девайс — программматор, который мы используем только как программатор. Пусть вас не смущает то, что на фото в начале статьи у итогового девайса синий цвет корпуса. Это не он. Будущий девайс находится справа.

Загружаем прошивку


Мы в шаге от успеха, осталось только загрузить прошивку. Открываем терминал, переходим в папку с нашей прошивкой(gnuk.elf).

Запускаем команду:

$ openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c 'program build/gnuk.elf verify reset exit'

Итак, теперь мы залили прошивку на наш девайс. Остался один шаг — запретить чтение памяти микроконтроллера. ВНИМАНИЕ! Это очень важный этап, который не позволит человеку, который украл ваш ключ, вытащить из него секретную информацию.

Для этого запускаем команду:

openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c init -c "reset halt" -c "stm32f1x lock 0" -c reset -c exit   

Теперь все готово.

Собираем все обратно


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



Разламываем крепление и выпаиваем контакты по одному.



Теперь надеваем обратно корпус, и заклеиваем заднюю стенку подходящим куском пластика.

Как можно использовать


То, что мы собрали — эмулятор OpenPGP смарт карты. Такая карта может хранить в себе GPG, SSH ключи. Область применения довольно большая, например:

  • Подписывание git коммитов — вопрос безопасности уже поднимался тут
  • Хранение SSH ключей
  • Шифрование и подписывание электронной почты по стандарту S/MIME — не проверял, но пишут что работает
  • Вход в ОС без пароля — хороший гайд уже есть на хабре

Как видим, можно сделать много чего интересного и полезного

Пример использования для ssh


И под конец, давайте посмотрим как можно использовать этот ключ для хранения ssh-ключей и подключения к удаленному серверу.

Есть два пути — сгенерировать новый ключ или импортировать уже имеющийся ключ на токен.

Посмотрим оба варианта. Вставляем токен в USB. В dmesg можно посмотреть информацию о подключенном устройстве.


$ dmesg
[11073.599862] usb 1-3: USB disconnect, device number 11
[11311.647551] usb 1-3: new full-speed USB device number 12 using xhci_hcd
[11311.796881] usb 1-3: New USB device found, idVendor=234b, idProduct=0000, bcdDevice= 2.00
[11311.796884] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[11311.796885] usb 1-3: Product: Gnuk Token
[11311.796887] usb 1-3: Manufacturer: Free Software Initiative of Japan

Генерация нового ssh ключа


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

Заходим в gpg:


$ gpg --card-edit

Открывается интерактивный режим gpg, включаем режим администратора командой admin:


gpg/card> admin

Далее запускаем команду генерации нового ключа:


gpg/card> generate

Далее идет стандартная процедура генерации ключа gpg. Во время которой вам будет предложено сохранить бекап ключа на диск. Разработчики рекомендуют делать бэкапы, но решать вам.
Единственно — аппаратно поддерживается генерация RSA ключей до 2048 бит. Если нужно 4096 — ключ прийдется генерировать на компьютере, а потом уже импортировать на само устройство.
Далее вам потребуются пин-коды. По умолчанию в прошивке зашиты следующие пин-коды:

CARD PIN — 123456
ADMIN PIN — 12345678

В будущем их обязательно нужно поменять.

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

Импорт уже имеющегося ключа


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


$ pem2openpgp temporary_id < id_rsa  | gpg --import

Теперь нам нужно узнать id ключа. Для этого выводим список всех доступных в gpg:


$ gpg -K

И находим импортированный ключ:


sec>  rsa2048 2020-02-05 [C]
      DFEFF02E226560B7F5A5F2CAB19534F88F8FE4EC
      Card serial no. = FFFE 87144751
uid           [ unknown] temporary_id


В моем случае id ключа — DFEFF02E226560B7F5A5F2CAB19534F88F8FE4EC

Заходим в интерактивный режим редактирования ключа gpg:


$ gpg --edit-key DFEFF02E226560B7F5A5F2CAB19534F88F8FE4EC

И даем команду на копирование ключа на смарт карту:


gpg> keytocard

Все, ключ записан.

Экспорт публичного ключа в ssh формате


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

$ pkcs15-tool --list-keys

В моем случае вывод выглядит так:


Using reader with a card: Free Software Initiative of Japan Gnuk (FSIJ-1.2.15-87144751) 00 00
Private RSA Key [Signature key]
	Object Flags   : [0x03], private, modifiable
	Usage          : [0x20C], sign, signRecover, nonRepudiation
	Access Flags   : [0x1D], sensitive, alwaysSensitive, neverExtract, local
	ModLength      : 2048
	Key ref        : 0 (0x00)
	Native         : yes
	Auth ID        : 01
	ID             : 01
	MD:guid        : f3de5f55-d100-4973-d572-40d67e20f033

Тут нас интересует ID-шник ключа, в моем случае 01. Теперь экспортируем публичный ключ:


$ pkcs15-tool --read-public-key 01

Копируем публичный ключ в файлик pub.key:


-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyzHQIWEApliWYaf0T8jb
Vh2nc5+LklKXeuJFTN3BW2VqdrTw1rpKXiANWpi+qbtZhZ2nP3CJX6qoGobXyCOd
/iAiygFlyW4BwTQpnAm81IE9lPzfasOK7SBuKJ+ZbB4WpuYJRozgtt/gpWzmnWnW
84/CU9Lqbhz95v/C/DImSf6LiwVdmiEj4CUNInl5pY4trguDsSfkw1u8gGqSPEsD
ZXtlVRx8iBGi0JR02g9KTL4dDGocUtcTK8W0eY+BDbQSXfTGCy93v8sEyhdQjHs8
oDiwkvFQ86gYqwL5DJ7U/rFSO3A5X6zmkFFV8nJZjxB2qfE5aommtXxow4iPml3x
YwIDAQAB
-----END PUBLIC KEY-----

И конвертируем его в ssh-rsa формат:


$ ssh-keygen -f pub.key -i -mPKCS8 

Получается публичный ключ в нужном формате:


ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLMdAhYQCmWJZhp/RPyNtWHadzn4uSUpd64kVM3cFbZWp2tPDWukpeIA1amL6pu1mFnac/cIlfqqgahtfII53+ICLKAWXJbgHBNCmcCbzUgT2U/N9qw4rtIG4on5lsHham5glGjOC23+ClbOadadbzj8JT0upuHP3m/8L8MiZJ/ouLBV2aISPgJQ0ieXmlji2uC4OxJ+TDW7yAapI8SwNle2VVHHyIEaLQlHTaD0pMvh0MahxS1xMrxbR5j4ENtBJd9MYLL3e/ywTKF1CMezygOLCS8VDzqBirAvkMntT+sVI7cDlfrOaQUVXyclmPEHap8Tlqiaa1fGjDiI+aXfFj

Дальше идет стандартная процедура настройки ssh для входа по заданному ключу — нужно добавить ключ в файлик ~/.ssh/authorized_keys на удаленном сервере.

Конфигурирование ssh


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

$ ssh -I /usr/lib/opensc-pkcs11.so martin@remotehost

Однако, удобнее будет воспользоваться config файлом (~/.ssh/config)
Добавляем в него следующие строки

Host digitalOceanServer
        HostName 192.168.0.1
        User root
        PKCS11Provider /usr/lib/opensc-pkcs11.so

Теперь вызов ssh стал еще проще:


$ ssh digitalOceanServer

Как поменять стандартные пин-коды


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

  • PIN-code — этот код используется при рутинных операциях со смарт картой — зашифровать что-то, подписать и т.д.
  • Admin Pin-code — этот код нужен для того, чтобы изменять/удалять ключи и делать всякие подобные «админские» вещи
  • Reset code — код, который позволит разблокировать токен, после трех неправильных попыток ввода PIN-кода. Его использование не обязательно, так что решать вам

У вас есть только 3 попытки для каждого из кодов. После чего токен блокируется.

Теперь приступим. Для этого опять заходим в интерактивный режим GPG:


$ gpg --card-edit

И вводим команду passwd:


gpg/card> passwd

Откроется окно, где можно будет сменить пин-код от токена.

Теперь нужно поменять пин-код администратора. Для этого переходим в режим администратора:


gpg/card> admin

Вводим команду passwd снова:


gpg/card> passwd

Однако теперь она работает в расширенном режиме и нам предложат несколько вариантов:


1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit

Your selection?

Выбираем change Admin PIN и по стандартной схеме устанавливаем пароль администратора. Напомню, default Admin PIN — 12345678.

О безопасности устройства


Разумеется, за 3$ нельзя достичь секьюрности уровня ключей за 200+ долларов. Однако, собранный девайс можно рассматривать как ключ начального уровня. Насколько мне известно, заводские ключи Nitrokey Start используют такую же прошивку. В любом случае, использование такого устройства поднимет безопасность как минимум на уровень выше. Так что это отличный способ начать использовать аппаратные ключи.

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

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

Ссылки на полезные материалы


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


Устройство которое мы собрали разрабатывается опенсорсным проектом GNUK (собственно, так токен и называется), так что еще информации можно найти в гугле по запросу «GNUK».

Upd. В комментариях подсказали, что есть прошивки, которые позволяют использовать девайс для двухфакторной аутентификации. Код прошивки можно найти тут
Upd. 2 15.02.2020 В комментариях подсказали, что для конкретно этого чипа существует уязвимость, позволяющая слить содержимое памяти. Насколько я понял, пока он еще не опубликована, но о ней заявлено. Так что пока все не однозначно. Там же предложили хорошее решение — залить внутрь корпуса устройства эпоксидную смолу смешанную с порошком алюминия. Такой способ был описан в книге Кевина Митника «Исскуство обмана». Таким образом, для того чтобы получить доступ к чипу нужно будет расковырять клей, что при неосторожном обращении может необратимо повредить чип. Конечно, и этот способ можно обойти, на это повышает стоимость взлома еще больше. Конечно, если будет нужно Моссад сделает свои Моссадовские штучки и это его не остановит, а только задержит.
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 148

    +2
    Полез заказывать себе еще пару программаторов к уже имеющимся (жалко эти на эксперименты).
      +1

      Не обязательно программатор. Оно отлично прошивается в blue pill.
      (конечно, неудобно, что её надо к компьютеру подключать шнурком, а не напрямую. Но "на пощупать" хватит!)

      +3
      клевая статья, автор молодец! Надо будет попробовать
        0
        Спасибо. Спасибо. Спасибо.
        А то уже думал что-то подобное на AVR-ке городить.
          +5
          «Теперь поговорим немного о том, что будет еслы Вы потеряете этот ключ» всегда интересовало — а что делать владельцу в этом случае?
          приватные ключи были «внутре» и не покидали устройства. бекапа в теории нет. делать-то что?

          как вообще в таких устройствах решается проблема потери своих ключей после утраты устройства?

          в голову приходит — дополнительный аппаратный копирователь — устройство с 2 USB портами (otg) и клавой для ввода пинкода. втыкаются 2 брелка, вводится пин код, брелок отдаёт все ключи, копирователь их засылает во второй брелок. второй брелок — в сейф.

          кмк — безопасно, копирователь не имеет выхода в интернет, можно подобрать MCU с минимальными RAM/Flash — что бы он не был и в теории способен сохранить лишнего.
            +1
            Прям в статье есть импорт ключей. Никто не мешает генерить ключи на доверенной машине и там же их копировать на резервный носитель с шифрованной ФС.
              +2
              и там же их копировать на резервный носитель с шифрованной ФС

              или сконвертировать в QR-код и распечатать

                +1
                Или держать отдельную холодную машину именно для этой задачи, благо, в 2020 году это не очень затратно (малина + две флэшки, или старый неттоп в примерно аналогичной конфигурации)
                0
                … если Вы потеряете этот ключ… — а что делать владельцу в этом случае?

                В случае банк-клиентов: идете в банк, заново доказываете что вы это вы — и генерируется совершенно новый ключ.
                В нашем случае — стреляетесь.
                PS. ну да, как в анекдоте про Чапаева — "проклятый склероз, так же и расстрелять могут".
                Неизвлекаемый ключ.

                  +2
                  как вообще в таких устройствах решается проблема потери своих ключей после утраты устройства?

                  По уму — тем, что устройств (и ключей) — несколько. При утере одного достается запасное и дальше пользуемся им. Одновременно перегенерируя и заменяя утраченный ключ.

                    0
                    т.е. вы имеете в виду несколько равноправных сертификатов на нескольких токенах?
                      +1

                      Плюс-минус оговорки под конкретный случай — да.

                      +1
                      Дубликат ключа пишется на компакт диск. Компакт диск запечатывается в пластиковый конверт (как у курьеров), на конверте ставится печать и подпись. Все закапывается под заветным дубом. Ну, или кладется в сейф. В случае утраты девайса, компакт диск откапывается или достается из сейфа и шьется в новый давайс (или просто все тайнаы расшифровываются по старинке). Пластиковый конверт позволяет убедиться, что враги не украли ключ теменной ночью.
                      В тяжких случаях ключ на диске шифруется двумя другими ключами, которые закапываются под двумя разными дубами или кладутся в два разных сейфа. А компакт тогда можно смело копировать и хранить где угодно — восстановить исходный ключ можно только получив два других ключа, что требует участия нескольких человек.
                        +7
                        К сожалению, качество современных компакт дисков желает оставлять лучшего. Большинство дисков, записанных мною в период 2000-2005 неработоспособно. И ведь специально подороже брал… и разных вендоров… И хранил вроде нормально.
                          0
                          Кстати да — старые диски плохо читаются, а всего-то прошло несколько лет.
                            0
                            Не помню где читал, но срок жизни CD измеряется годами. Что-то поменьше 20 лет. Дальше +- качество производителя.
                            0

                            Ну, вы же писали на золотые вербатимы? А нужно было на них. Диски же тоже нужно специальные подбирать. А если важная информация, то просто специальные использовать.

                              0
                              Не знаю что за золотые вебратимы. Обычные диски я брал, и вебратимы в том числе. А инфа — так, личный фотоархив, ничего сверхсуперважного.
                                +1
                                Из максимально совместимого с существующими приводами, но при этом (сравнительно) долговечного — есть M-Disc и те же «золотые вербатимы». Вот тут были тесты с искусственным состариванием. Реальным прорывом был Syylex GlassMasterDisc, но, насколько я знаю, в серийное производство они так и не попали, да и сайт уже мёртв.
                                +1
                                Диски у меня тоже крякнулись. А вот самые первые фотки с SD карты 128Мб от фотика, с 2004 года, вполне себе живы. Специально не трогаю ничего, интересно сколько лет ещё это будет храниться. Может и меня переживёт.
                                  0

                                  А вот я даже не догадываюсь, крякнулись у меня диски или нет. Кончилось всё тем, что привода у меня нет. Но диски зачем-то храню...

                                +2
                                Сам так думал ещё пару месяцев назад.
                                А недавно вот апгрейдил домашнюю машинку и решил «да подумаешь — 10 баксов» и взял в неё современный DVD-привод.
                                И вы знаете — перебрал все до единого диски, что были у меня в наличии — прочитались ВСЕ. Диски все эти годы хранились в двух мягких книжках для дисков.
                                До этого несколько лет назад пробовал перечитать их при помощи вдвое более дорогой компактной USB-читалки — практически ничего не читалось, так что попробуйте купить привод.
                                  0
                                  Тонкие приводы склонны насасывать пыль, можно просто попробовать продуть линзовый блок.
                                    0
                                    Старые диски он прямо с первого дня читать отказался. Недавно пробовал им хоть что-то прочитать — не читает вообще ничего, диск раскручивает и всё.
                                    Всё это время лежал на полке, успел прочитать им 3 DVD-диска за всё время.
                                    Попробую продуть, спасибо за совет.
                                –2

                                Лучше гравировать на платиновой пластине.
                                Компактный диск сдохнет очень быстро.

                                  0

                                  Тогда уж на искусственном сапфире.

                                    +1
                                    Лучше гравировать на платиновой пластине.
                                    А вдруг наводнение, землетрясение, извержение вулкана? Так что надо еще для сохранности отправлять в космос. Погодите…
                                      0
                                      Не так давно вычитал три десятка дисков, записанных 15 лет назад. Хранились просто на даче в закрытом ящике стола. Без ошибок прочитались все, кроме одного (вероятно, изначально информация записалась со сбоем).
                                      +6

                                      Ключ не настолько длинный, чтобы целый компакт диск тратить.
                                      Так что:
                                      1) Делим ключ на кусочки ну хотя бы по Шамиру. Соответствующая программа в любом дистрибутиве есть.
                                      2) Кусочки печатаем на лазерном принтере, закатываем в ламинат, упаковываем в конверт и т.д. и т.п.
                                      3) Все это закапывается под несколькими дубами, прячется на чердаках и в пещерах (не забываем убедиться, что нет слежки)


                                      (1) Позволяет восстановить ключ, даже если некоторые кусочки утрачены. И позволит не раскрыть ключ, если только пара кусочков найдена
                                      (2) Бумага и сажа тонера, в общем, неплохо храняться.
                                      (3) А это уже просто для паранойи и прочей таинственности.

                                        –1
                                        Диски есть хорошие для архивного хранения и стоят копейку. Чем вы вообще диск замените, если нужна гарантия, что оно должно почитаться? Ничего иного человечество не придумало. Только специальные ленты магнитные, но цена и требуют специальных условий хранения. Конверт и ламинат это оверкил не автоматизировано. А диск достал и работай.
                                        Бумага, кстати, ввода не хранится Сырость, тараканы, просто время. Тонер может обсыпаться, если бумага начнет разлагаться.
                                          +1
                                          гарантия, что оно должно почитаться?

                                          правило «3-2-1»
                                            +1

                                            Перфокарты надёжнее простой бумаги. А можно металлическую пластину перфорировать, например золотуюили платиновую :)

                                              0
                                              Технологичней печатать фотошаблоны с закодированным в изображении текстом (типа QR) и контактно их копировать. Например, на обычную галогенсеребрянную фотобумагу или по хардкору на стеклотектолит с фольгой.
                                              +2
                                              Чем вы вообще диск замените, если нужна гарантия, что оно должно почитаться?

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

                                                +1
                                                Магнитооптика. Стримеры.
                                                +5

                                                Хоркруксы, которые мы заслужили.

                                                  0

                                                  Печатать что? Текст?
                                                  Нынче, пожалуй, лучше что-нибудь машинночитаемое. qr-код, например.

                                                    +1

                                                    И так и так. И qr-кодом, и просто hex записью шрифтом побольше и в ASCII-armored формате.

                                                  +1
                                                  Разделяемый секрет Шамира же. 6 ключей, например. Для восстановления исходного достаточно исходных трех.
                                                +2
                                                На сайте yubico:
                                                “The most secure plan is for each user to have two YubiKeys”
                                                Коротко:«Используйте бэкап»

                                                www.yubico.com/blog/backup-recovery-plan
                                                  +1
                                                  Мне тоже сразу пришла в голову такая мысль. Развернулся на стуле, коленкой «свернул» ключ. Всё, приехали.
                                                    +2

                                                    Коленкой раскрошить сам микроконтроллер сложно, скорее всего дело закончится пайкой.

                                                    +1

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

                                                      +1
                                                      как вообще в таких устройствах решается проблема потери своих ключей после утраты устройства?

                                                      Можно иметь несколько устройств с одним identity и для каждого иметь бумажный бекап под деревом.
                                                      +1
                                                      Спасибо! Крайне интересно!!!

                                                      Подскажите, плиз, а сколько вообще ключей можно хранить на устройстве? Из текста я так понял что несколько, но сколько именно?
                                                        0
                                                        Спасибо, очень интересно! А не подскажете, где почитать про хранение на таком устройстве многочисленных паролей от интернет-ресурсов?
                                                          +3
                                                          Вот например здесь.
                                                          Оригинальная консольная утилита `pass` хранит файлы, зашифровывая и расшифровывая их с помощью GnuPG. Записываете приватный мастер-ключ на Yubikey или, в данном случае, на ST-Link v2, и получаете менеджер паролей с хардверным токеном.

                                                          Есть интерфейсы для броузера и для телефонов. Зашифрованные пароли обычно хранят в git.

                                                            +3
                                                            Шикарно! Благодарю! Пошел заказывать…
                                                              0
                                                              А под Windows есть?
                                                          0
                                                          В него бы еще конечно зацепить к примеру ридер для SD карты, чтобы дополнительно ПО таскать на нем. В этом случае было оптимально таскать такое для подключения в не доверенных местах. Но подозреваю ПО для работы с ним только в том же linux можно поставить и по умолчанию его не будет в том числе и в windows.
                                                            0
                                                            Нужен всего лишь gnupg. Его скачать несложно.
                                                              0
                                                              эм. Вот у меня комп с виндой я хочу по ssh попасть на хост при помощи ключа записанного на такой токен. Ваши действия?
                                                                +1

                                                                Прописать в конфиге gnupg (в винде — gpg4win), чтобы он начал прикидываться демоном ключей для putty, и, собственно, использовать putty.


                                                                Я так на github коммиты пушу, правда без хардварного токена :3

                                                                  0
                                                                  пойдет
                                                              0
                                                              Спаять в один корпус это чудо, usb-хаб и флешку — отличная штука получится. Или — весь нужный софт — на флешке, или — флешка-прикрытие.
                                                              –2
                                                              Вы опасаетесь уязвимостей в ОС и кейлогеров, но всецело доверяете чипу STM32?

                                                              Кроме того, если на компе находится кейлогер, он залогирует открытый текст ещё до того, как текст пойдёт на шифрование в аппаратный ключ.
                                                                +2
                                                                Контроллер не подключен к интернету. Даже если в нем закладка есть — кто будет ее эксплуатировать, и как?
                                                                  +1
                                                                  Примерно так если найти потерянный токен: lists.gnupg.org/pipermail/gnuk-users/2020-February/000243.html
                                                                    0
                                                                    Утеряли токен, поменяли ключи. Это конечно не отрицает возможность хакнули пока меня не было, но все же. Плюс как всегда помним что стоимость защитных мер не должна превышать стоимость защищаемой информации :))
                                                                0
                                                                Чисто теоретически можно через режим DFU прошить ST-Link через USB и обойтись только одним программатором :)
                                                                www.st.com/en/development-tools/stsw-stm32080.html
                                                                  0
                                                                  В STM32F103 микроконтроллере, который обычно используется в программаторе, есть только встроенный UART бутлоадер, но не DFU.
                                                                    0
                                                                    Ну им и прошить как вариант, нужен будет только USB-UART TTL, из ардуины сделать например.
                                                                      0
                                                                      Нужно подтянуть пин boot0 к VCC и boo1 к GND, а для этого нужно отпаять ножку микроконтроллера или перерезать дорожку. А потом все вернуть обратно. Не факт, что так будет проще.
                                                                        0
                                                                        Я проделывал это на одном дисплее с тачскрином для расберри. Контроллер тачскрина был сделан на STM32 и выяснилось что китайская прошивка контроллера кое-как работает с rasbian, но с Win10 IoT она не совместима (не посылает тапы как тапы, а шлет как касания).
                                                                        Благо один чел выложил исходники прошивки которую переписал, соотвественно надо было ее залить. А поскольку ST-Link у меня на руках не было, а прошить надо было «еще вчера» — пришлось поднимать boot ноги у контроллера и цепляться через UART.
                                                                        Вариант конечно слегка экстремальный, но в сложных условиях имеет право на жизнь :)
                                                                      0
                                                                      Меня смущает, что в китайских ст-линках такое стоит, при этом оно успешно обновляет себе прошивку по USB.
                                                                        0
                                                                        Сдается мне там просто продуманная STM прошивка, например сначала льется в память (или неиспользуемую часть флеша), а потом из памяти все льется во флеш силами самого контроллера.
                                                                          +1
                                                                          Скорей всего там кастомный USB-бутлоадер, который находиться в начале flash-памяти, и занимает несколько килобайт. Теоретически, можно найти или отреверсить протокол обновление прошивки st-link и модифицировать исходники Gnuk для совместимости с этим бутлоадером. Но это тянет на отдельную статью, а может быть — и не на одну. И бутлоадер занимает драгоценную flash-память, которая сейчас используеться и для сохранения ключей.
                                                                      –11
                                                                      Аппаратный ключ шифрования за 3$ — возможно ли это?

                                                                      Хочу больше статей с подобными заголовками и ответом "нет" :)

                                                                        0
                                                                        Единственно — аппаратно поддерживается генерация RSA ключей до 2048 бит. Если нужно 4096 — ключ прийдется генерировать на компьютере

                                                                        насколько я понял, Gnuk поддерживает и ECC. В ECC точно не должно быть проблем с генерацией, и криптостойкость на уровне RSA-3072 (для 256-битных ключей).

                                                                          +2
                                                                          Разумеется, за 3$ нельзя достичь секьюрности уровня ключей за 200+ долларов. Однако, собранный девайс можно рассматривать как ключ начального уровня. <..> В любом случае, использование такого устройства поднимет безопасность как минимум на уровень выше. Так что это отличный способ начать использовать аппаратные ключи.

                                                                          С этим не спорю.


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

                                                                          А вот это, к сожалению, не верно; конкретно для этого чипа обойти защиту довольно легко: https://medium.com/@LargeCardinal/how-to-bypass-debug-disabling-and-crp-on-stm32f103-7116e7abb546

                                                                            +2
                                                                            конкретно для этого чипа обойти защиту довольно легко

                                                                            Это несколько не так. На медиуме расписано, как легко и просто обойти защиту "отключить пины SWD", но при включенном RDP загрузчик не работает (точнее, не работают никакие способы чтения flash). Кажется, возможна атака, описанная Обермаером (ссылка в медиуме), но у неё есть куча допущений (описаны в работе этого самого Обермаера).
                                                                            Также, вероятно, работает атака с глитчем питания (вот эта).


                                                                            Но говорить, что всё так легко и просто, я бы не стал...

                                                                              +2

                                                                              Признаю, выразился тоже не слишком удачно; спасибо.

                                                                              0
                                                                              Гхм… Там написан вариант, когда прошивку писал и зазищал криворукий ардуинщик, который даже не удосужился заглянуть в соответствующий раздел мануала процессора. Тогда есть даже еще более простой способ через манипуляцию с сигналом сброса и правильной настройкой программатора. Если защита прошивкой настроек, то включить ее нельзя вообще никак. Причем, можно даже загрузчик разрешать, но прошивка останется защищенной. Через манипуляции с питанием, можно попытаться смотри сделать, но только если неправильно детектор питания в софте наполнен. Что тоже признак криворукости. Если же выставить биты защиты по максимуму, то не ломается никак. Даже через манипуляции питанием.
                                                                              Соответственно, если хочется безопасности, то нужно неделя и ручками после прошивки выставить максимальный уровень защиты. Больше такой процессор не перешлёшь, но и ваши никак и никогда до секретов не доберутся. При стоимости платы в 100 рублей, это не проблема.
                                                                                0

                                                                                Ну, "совсем" никак — это все-таки слишком сильно. Имхо если есть физический доступ к устройству, то взлом возможен — вопрос только в цене и количестве усилий.
                                                                                В конце концов, можно кислотой стравливать чип слой за слоем. Но можно и тротила в корпус насовать. Но можно корпус вскрывать в жидком азоте. Но можно… ну вы поняли, это бесконечная битва :)


                                                                                Через манипуляции с питанием, можно попытаться смотри сделать, но только если неправильно детектор питания в софте наполнен

                                                                                По-моему глитчингом можно добиться неверного выполнения команд процессором, так что софтом тут не прикроешься.

                                                                                  0
                                                                                  Правильно. Поэтому установка максимального уровня защиты аппаратными битами, правильная настройка детектора питания и контроль стабильности кварцевого генератора и PLL. Неправильная прошивка ломается. Правильная — нет. И посмотрю я, как вы его заставите неправильный код выполнять. Т.е. теоретически возможно, но вероятность такая, что можно сразу начинать перебором ключ подбирать. Или тогда уже радиоактивным излучением точечно облучать в попытках снять биты защиты, как серьезные конторы в таких случаях делают. Но там и от этого в топологии защита есть. Глитчинг уже 50 лет известен и используется от разведок до промышленного шпионажа. И давно все приличные контроллеры имеют меры защиты от него. Тем более, что тут нам нужно не один из тысячи контроллеров с одинаковыми прошивками взломать, каждый из которых проводному реагирует на глитчинг, а один конкретный.
                                                                                  Ну, и если мы про секурность говорим, то минимальное шифрование ключей тем же уникальным номером контроллера тоже рушит всю идею. Ну, прочитал ты ключ, а как номер контроллера узнаешь, чтобы понять, что прочитано?
                                                                                    –1
                                                                                    del
                                                                                      +1
                                                                                      Но этот загрузчик отключается аппаратными битами защиты. Дальше можно играть со сбросом и питанием в попытках стартануть отключенный загрузчик. Но фокус в том, что другие биты защиты, как я помню, запрещают загрузчику читать и писать флэш. Так что нужно не просто ждать, когда звёзды станут так, что загрузчик стартанёт, нужно ещё чтобы он получил доступ к флэшу. Проще в лотерею играть или просто мпытаться ключ угадать.
                                                                                      Пока я не понимаю, как при правильной прошивке можно с какой либо повторяемостью обойти защиту. Делать стенд и год ждать, пока повезёт? Ну, как вариант. Но если ключи настолько важны, что их год ломать будут, то наверное, нужно использовать девайсы не за три, а за четыре доллара. Аналогично, если владелец такого важного ключа не сподобился при его утере сменить ключ, то, наверное, ему этот ключ не нужен.
                                                                                0
                                                                                Проблема именно этого решения в дешевизне железа. Есть немало МК которые слить от не просто до невозможно (в разумных пределах)
                                                                                +2
                                                                                Спасибо для статью! Заказал пару таких программаторов, как приедут — попробую собрать такой девайс. Это будет интересный эксперимент и хороший опыт.
                                                                                  0
                                                                                  ВНИМАНИЕ! Это очень важный этап, который не позволит человеку, который украл ваш ключ, вытащить из него секретную информацию.

                                                                                  Недавно была статья про то как легко сливается флешка с F1* мк :)
                                                                                  Можно глянуть на solokeys, там stm L4
                                                                                    –1
                                                                                    видимо, ответом на это должно быть залитие микросхемы злючей эпоксидкой с толчёным стеклом, чтобы извлечь её из алюминиевого корпуса, не разрушив попутно флешку, не было возможности.
                                                                                      0
                                                                                      Можно насчет эпоксидки поподробнее? Чем именно можно было бы залить?
                                                                                        –1

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

                                                                                          +1
                                                                                          Точки для сведения выбираются рентген-контролем или шлифовкой края в поисках углов платы и дальше от этих точек отмеряется

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

                                                                                            0
                                                                                            Проще поставить контроллер 2xx, где защита на порядок серьезнее за те же деньги. Но неуклонно быть уверенным, что прошивка написана правильно.
                                                                                              0
                                                                                              Можно немного подробнее про 2xx?
                                                                                                +1
                                                                                                В серияз STM32F2 и F3 есть замены для 32F1. Во многих случая даже даже прошивка работает. Там гораздо совершеннее механизмы защиты. Но всё равно прошивка должна быть правильно написана.
                                                                                            0
                                                                                            я бы всё-таки в эпоксидку мешал только диэлектрик (поэтому и подумал про стекло). Ещё с песком можно смешать. Сильно повышает вероятность, что попытка выдрать плату закончится необратимым повреждением флэша, и делает сверление крайне геморройным.
                                                                                              0
                                                                                              поэтому нужно не сверлить, а фрезеровать
                                                                                                +2
                                                                                                Мне приходилось разбирать приборы, залитые эпоксидкой.
                                                                                                Обычным феном с паяльной станции эпоксидка нагревается до 120-150 градусов, при этом она размягчается и легко послойно сковыривается отверткой. При нагреве по констистенции становится как очень густое желе, не надо ничего сверлить в ней.
                                                                                                  0

                                                                                                  Значит нужно добавить в смолу что-нибудь химически-активное, чтобы при нагреве до 120-150 градусов смола возгорелась, или, например, едкий дым начала выделять.

                                                                                                    +2
                                                                                                    Это уже было, и пайка припоем, который на этих температурах становится жидким, и в крупных приборах были встроенные ножи, которые при неправильном разборе корпуса слетали с фиксаторов и срезали с плат все компоненты. Говорят, что ещё были ампулы с кислотами, чтобы убить при разборке определённые чипы.
                                                                                                      0
                                                                                                      пайка припоем, который на этих температурах становится жидким

                                                                                                      Надо чтобы ещё со смолой в химическую реакцию вступал. Иначе он останется на своём месте и при остывании припаяется обратно.

                                                                                                        0
                                                                                                        Так детали со смолой и снимут, когда очищать будут.
                                                                                                          0

                                                                                                          Да, мысль хорошая. Тогда надо, чтобы смола хорошо приставала к деталям. И детали делать на ножках, чтобы смола могла затечь под них.
                                                                                                          Но чип нужно как-то уничтожить, даже если он отпаяется. Лучше перегрева — трудно что-то придумать, значит нужно что-то что возгорится.

                                                                                                            +2
                                                                                                            Лучше тогда аккумулятор поставить и сжечь импульсом, но вообще вы изобретаете велосипед :)
                                                                                                            Это все было еще в 80х годах прошлого века.
                                                                                                            Сейчас самая модная тема — сделать сетку из проводников вокруг устройства, физическая конфигурация которой является уникальным кодом (набор значений емкостей и индуктивностей), с помощью которого симметрично кодируется-декодируется информация на чипе внутри сетки. И получается что при нарушении конфигурации или целостности сетки меняется этот код и информация становится невосстановимой.
                                                                                                              0
                                                                                                              Это что-то из разряда кодовых замков из 80х, где в ключе находилась вторая половина колебательного контура?
                                                                                                                +1
                                                                                                                Только контуров много и они все запаяны внутри корпуса чипа. Ну и их взаимное влияние тоже учитывается. Малейшее изменение характеристик или смещение одного контура относительно другого и код, собранный из показаний АЦП контуров, меняется.
                                                                                                                  0
                                                                                                                  Вангую, что на этот клубок из контуров будет влиять что угодно, от поднесенной руки (или металла) до температуры окружающего воздуха. Это учтено?
                                                                                                                    +1
                                                                                                                    Внешний экран, соединённый с корпусом, наверняка от такого защитит.
                                                                                                                –1
                                                                                                                Положив внутрь другой катушки можно относительно легко снять характеристику
                                                                                              +1
                                                                                              Методы защиты разные бывают, особо ушлые ребята высверливают пины SWD из чипов или сжигают волосок идущий от кристалла к пину (это в зависимости от конструкции контроллера конечно)
                                                                                              Но против шлифования кристалла это конечно не поможет.
                                                                                              С другой стороны те люди, за данными которых так охотятся что готовы потратить десятки тысяч долларов на такой хак — вряд ли будут хранить ключи на STM32 за 3 доллара
                                                                                            +1
                                                                                            Память самого устройства защищена от чтения, так что считать записанные в него ключи напрямую не получится.

                                                                                            STM32F1 взломан: blog.zapb.de/stm32f1-announcement
                                                                                              0
                                                                                              Пока ещё не понятно, что это. Кто-то зарезервировал код под себя. Отключайте jtag/swd битами защиты, дублируйте отключение в коде и правольно настраивайте контроль питания. Тогда полный взлом невозможен. Что-то где-то на каких-то экземплярах при каких-то условиях…
                                                                                              Посмотрим, когда опубликуют.
                                                                                              Если сильно страшно — не используйте сотую, используйте двухсотую.
                                                                                                +1

                                                                                                Можно доработать прошивку, скрестить ежа с ужом (добавить код для чтения бесконтактных смарт-карт типа Mifare Plus) и хранить ключи на картах :)

                                                                                                  0
                                                                                                  Mifare Plus вроде не умеет в ассиметричную криптографию
                                                                                                0

                                                                                                У меня есть токен от WEB приложения iBank, точно название не помню, это интернет банк юр. лица. Подскажите его можно как то использовать, записывать свои ключи? Хочу по экспериментировать

                                                                                                  0
                                                                                                  Я правильно понял что если Вы потеряете этот ключ это конец всему?
                                                                                                    +3
                                                                                                    Почему же сразу «конец»? Это начало новых приключений!
                                                                                                    PS: нужен backup…
                                                                                                      +1
                                                                                                      Так же, как если удалить ssh ключ на диске (например, сдох диск).
                                                                                                      То есть, если нет резервной копии или других вариантов, то это «конец всему».
                                                                                                      +1

                                                                                                      А после такой манипуляции можно будет перезаписать флеш (обновить прошивку), пусть даже ценой потери ключей?

                                                                                                        +1

                                                                                                        Зависит он настроек защиты, которые упоминался отдельно программатором. При максимальных уже никогда ничего не перешьёшь. Есть сочетание при котором чип можно только целиком стереть, но теоретически оно чуть менее надёжное (хотя сколько-либо повторяемых случаем взлома никогда представлено не было — редко на некоторых экземплярах с огромными проблемами что-то может быть.

                                                                                                        0

                                                                                                        Интересно, а если шифровать ключи в памяти STM32 используя пин и достаточно длинную случайную соль — это сильно поможет от препарирования? По идее должно. Другое дело — как защитить саму соль...

                                                                                                          0

                                                                                                          Зачем? В белом смысле STM с установленноц защитой не ломается никак. А если вам настолько заинтересуется ЦРУ, что будет готово шлифовать чип и читать прошивку электронным микроскопом, то этот ключ будет наименьшей из ваших проблем. Но и тогда есть недорогие чипы с некоторой защитой от такого метода взлома.

                                                                                                            0
                                                                                                            Разве что достаточно длинный пин, чтобы его нельзя было сбрутфорсить за разумное время. Не совсем понял, каким образом тут поможет соль?
                                                                                                              +1

                                                                                                              Да, это я быстро и неподумавши написал.


                                                                                                              На самом деле я думал про что-то вроде PBKDF2 с большим количеством итераций, но это для слабого процессора так себе идея. Да и при только цифровом пароле особого смысла это не имеет — отбрутфорсить все равно просто.

                                                                                                            +1

                                                                                                            Ещё есть некий вопрос вы качестве генерируемых на самом устройстве ключей. Процессор очень слабенький, памяти мало, что там за генератор и проверка на качество генерируемых ключей не понятно. Я бы сказал, авто лучше генерировать на компьютере.

                                                                                                              +1

                                                                                                              Спасибо за статью, идея очень интересная в плане недорогого перевода всех на аппаратные ключи, а также потенциального использования для аппаратного TPM модуля в самом компе, чтобы не могли вытащить ключи софта даже при атаках. Причём всё это на основе достаточно стандартного железа и с открытым кодом. Естественный вопрос по такому железу — для генерации энтропии нужен серьезный источник аппаратного шума, как с этим у STM32? Есть подобный проект OneRNG и идеальным выглядит их объединение в одном девайcе. Вторая проблема в возможных уязвимостях, которые могут разлочить флеш, о ней уже говорили. И конечно же совсем идеальным такой девайс сделает аппаратный ввод пин кода без связи с компьютером.

                                                                                                                0
                                                                                                                У некоторых STM32 есть TRNG.
                                                                                                                0
                                                                                                                Кажется, тут используется генератор «neug». Собрать надежный шум на микроконтроллере не очень большая проблема. Например, можно снимать значение напряжения с пина, который висит в воздухе. Полученный шум нужно будет почистить, но добиться прохождения статистических тестов думаю под силу. Единственное — большой скорости генерации случайных чисел врядли получиться добиться. Но это и не критично.
                                                                                                                  0
                                                                                                                  И какой шум будет, когда пин подтянут к земле или плюсу? В STM32 есть встроенный термистор, данные с которого можно получить. Это так же не очень надёжный вариант, но всё же немного лучше. Иногда ещё можно использовать VDDA. Вариантов много, только далеко не все по надёжности дотянут до встроенного TRNG.
                                                                                                                +2
                                                                                                                Спасибо за статью, сегодня вечером попытался повторить, найдя пару китайских программаторов.
                                                                                                                Результаты пока следующие:
                                                                                                                1. После нескольких (порядка 5) попыток таргет не определяется при подключении к USB, т.е. ни разу. Сначала грешил на аппаратные проблемы и кривость программатора, но нет, проблема точно не в этом, читается и пишется одно и то же.
                                                                                                                2. 2. Пересобрал проект заново, попытался прошить в BluePill на том же stm32f103cb, т.к. у нее тоже выведен USB. (Но здесь хоть BOOT0 переставляется джампером, а не пайкой.) Пока все также — не определяется и все тут. Думаю, что проблема именно в софте, продолжу ковырять позже.

                                                                                                                Внимание: После каждой прошивки у таргета отваливается SWD. Т.е. она шьется только один раз. Для возвращения железки к жизни надо перекинуть BOOT0 с земли на +3V3 и стереть чип.
                                                                                                                  0

                                                                                                                  Я сразу шил в bluepill (программатор есть, но он единственный, его жалко :) ).


                                                                                                                  Только сперва надо прописать, что у него на борту 128к, а не 64, как думает openocd (и потому просто не пишет).
                                                                                                                  Ну и при конфигурировании (хм… а почему автор статьи просто вообще не приводит строчку с запуском ./configure, а сразу делает make? ) можно сказать, что таргет — BLUE_PILL. Непонятно, что именно это меняет, но выглядит круто.
                                                                                                                  Назначенный --vidpid=234b:0000 после прошивки виден в списке lsusb при подключении прошитой таблетки кабелем.

                                                                                                                    0
                                                                                                                    Автор забыл написать про configure) Спасибо
                                                                                                                    +1
                                                                                                                    Пин сброса попробуйте подключить к программатору. SWD для нормальной работы требует сброса.
                                                                                                                    +3
                                                                                                                    По поводу ST-LINK, таких, как автор использовал, есть одно замечание, которое хорошо описано в easyelectronics.ru/malenkaya-xitrost.html
                                                                                                                    «Знаете какая самая частая причина выгорания этого свистка? КЗ контактов разъема на корпус. Стяните эту алюминиевую байду и увидите сами, что контакты тупо лежат на алюминии, отделясь от него тончайшим слоем анодирования. Стоит чуть пошевелить, нажать, как анодирование царапается и дальше выходит волшебный дым. А еще там ноги кварца могут торчать и коротить за это же анодирование. Решение такое же тупое как и косяк. Открыть, оторвать все выступающие части, что не оторвать обмотать изолентой и закрыть.»
                                                                                                                    Та же угроза будет и для ключа.
                                                                                                                      0
                                                                                                                      ну так, дополнительная механическая защита :)
                                                                                                                        +2
                                                                                                                        Даже с доработкой, всё равно эти свистки помирают. Просто перестают определяться через некоторое время.
                                                                                                                        Практически все чипы с али — подделка, чаще всего с разными проблемами, доверять им всякие ключи — довольно глупый способ выстрелить себе в ногу…
                                                                                                                          0
                                                                                                                          Во-первых, помыть нужно спиртом обязательно свисток. Они говном каким-о паяны и отчаянно окисляются. Во-вторых, обмотать скотчем края, где разъёмы.
                                                                                                                          После этого будет работать вечно. У меня за пять лет из нескольких десятков, ни один не поломался.
                                                                                                                            +1
                                                                                                                            Промывал, вставлял прокладочки из лакоткани. Всё равно сдох без всяких явных причин. Качество китайских чипов — лотерея… Так что перешёл на нормальные ст-линки из Компэла — этих несколько штук, работают.
                                                                                                                        +1

                                                                                                                        А можно ли будет использовать это устройство для u2f?

                                                                                                                        +1

                                                                                                                        Поддержу предыдущего оратора, есть ли аналогичная прошивка для u2f?
                                                                                                                        Yubikey стоит ~4 т.р., альтернатива за $4 была бы просто великолепна ;)

                                                                                                                          +1
                                                                                                                          Ещё бы клавиатуру для пин-кода…
                                                                                                                            +1
                                                                                                                            Есть проект, где на пины, которые осталить от программатора, приделывают кнопку подтверждения.
                                                                                                                            Думаю, можно попробовать за программировать какой нибудь патерн для этой кнопки.
                                                                                                                              0

                                                                                                                              В стиле стим-панка: rotary encoder и наклейка как циферблат от сейфа. Но пин код надо вводить на самом ключе, это факт.

                                                                                                                            0
                                                                                                                            Пардон, я немного обычный пользователь, и поэтому вопрос: а разве держать все скрытое на зашифрованном в VeraCrypt диске под сильным паролем нельзя? Используя к тому же двойное сокрытие, так как от применения терморектального криптоанализатора не спасет ни пароль, ни этот чудо-девайс.
                                                                                                                              +1

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

                                                                                                                                +3
                                                                                                                                Смысл устройства в том чтоб не дать прямого доступа к ключам (например прочитав из файла или подслушав кейлоггером).
                                                                                                                                Если вы сохраните ключ хоть на трижды шифрованном диске — он все равно будет доступен для чтения (системе/вирусам/хакерам) как только вы откроете этот диск.
                                                                                                                                  0
                                                                                                                                  Против терморектального криптоанализатора — можно разломить эту штуку пополам и готово.
                                                                                                                                    0
                                                                                                                                    ну, это смотря что тебе ценнее, скрытая на ключе информация или собственная задница. Лично я-бы поостерегся ломать ключик, если ко мне уже пришли люди с паяльником.
                                                                                                                                      0

                                                                                                                                      Так задница всё равно целой не останется. И голова скорее всего тоже. На случай, если придут люди с паяльником — нужно готовиться играть в камикадзе.

                                                                                                                                      +1
                                                                                                                                      Плата сломается, а чип — скорее всего останется целым. На ютубе можно найти много видосиков по восстановлению данных с ломаных флешек…
                                                                                                                                        0
                                                                                                                                        Нужно взять себя в руки(а когда в дверь постучали, это трудновато), и сломать от души :) На самом деле, довольно легко можно разрушить чип напрочь если просто проткнуть его ножом(выравниваем нож ровно по середине и с силой бьем по рукоятке ножа)
                                                                                                                                      0
                                                                                                                                      А ключ для veraCrypt на этом свистке.

                                                                                                                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                                                                    Самое читаемое