Comments 17
UFO landed and left these words here
Идея классная, но Юзабилити нулевая.
Почему нет удобной утилиты для шифрования файлов папок с помощью этого ключа или ключа хранящегося в этом STM ключе?
кликнул на файл типа архивный если ключ не вставлен в ЮСБ появилось окно с просьбой вставить и ввести пин и если всё хокей открывается содержимое архива- папок пока ключ вставлен все изменения файлов обновляются в шифрованном архиве. без варганов и бубнов с командной строкой…

Veracrypt поддерживает аппаратные ключи, но там используется протокол PKCS #11. Пишут, что OpenPGP Card может обеспечить PKCS #11 через промежуточный слой OpenSC. Сам не проверял, но если PKCS #11 заработает, то этот ключ можно будет использовать совместно и с Veracrypt и с огромным количеством иных приложений.

На самом деле, есть довольно много недорогих PKCS11-совместимых ключей отечественного производства (в России это RuToken, в Украине — Avtor)

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

На самом деле, во многих линукс-дистрибутивах поддерживается из коробки LUKS шифрование диска с использованием аппаратных ключей Yubikey. Для того, чтобы запустить ОС, нужно вставить yubikey и ввести пин-код. Пакет насколько я помню называется yubikey-luks
Это оффтоп конечно, просто фото на
КДПВ
image
напомнило. Видел на какой-то ещё советской плате что после того как проводки были к ней припаяны, они ещё несколько раз проходили через отверстия на плате- как шнурки в кроссовках. Там это было обусловлено тем что провода подвергались механическим напряжениям. Интересный способ, взял на вооружение- стоит копейки, просто подумать чутка при проектировании платы, и потом несколько дырочек просверлить.
Боюсь тут не актуально. Проводочки припаяны только ради одной прошивки данного донгла. Потом их отпаяют и всё…

При попытке прошить девайс получаю вот такое сообщение:


** Programming Started **
auto erase enabled
Info : device id = 0x20036410
Info : flash size = 64kbytes
Error: stm32x device protected
Error: failed erasing sectors 0 to 54
** Programming Failed **
shutdown command invoked

Я понимаю, что микроконтроллер защищен от перезаписи, но как это победить?


Команда


openocd -f interface/stlink-v2.cfg -f target/cks32f1x.cfg -c 'init; reset init; stm32f1x lock 0; program ./gnuk.elf verify reset exit'

не помогла :(

Сработало, спасибо! Кстати, оригинальную BluePill у меня gpg в упор не видит, а вот китайский клон, прошитый версией на 64кб, увидела.

Для BluePill надо указать другую опцию target:


./configure --target=BLUE_PILL --vidpid=234b:0000

Проще наверно взять bluepill и припаять к нему usb A чем гадать что там китайцы пришлют

Для желающих использовать этот ключ на всякий случай напомню про относительно легкий способ считывания содержимого внутренней памяти:
habr.com/ru/company/ntc-vulkan/blog/483732

Не оставляйте его без присмотра надолго, если кому-то могут быть интересны ваши секреты)
Автору респект! А то я тоже получил от китайцев устройство на чипе CKS32F103C8. А знаний по МК почти нет, как и времени на их получение.

Сначала создал ключ на самом устройстве (успешно), потом стал ковырять импорт ключа SSH (по этой статье). Делал так (там пришлось делать преобразование в 2 этапа, ssh -> pem ->gpg):
$ cp id_rsa id_rsa.tmp
$ chmod 600 id_rsa.tmp
$ ssh-keygen -p -N "" -m pem -f id_rsa.tmp
$ pem2openpgp temporary_id < id_rsa.tmp  | gpg --import
$ gpg -K

sec   rsa4096 2020-04-15 [C]
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid         [ неизвестно ] temporary_id

$ gpg --edit-key  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
gpg> keytocard
Действительно переместить первичный ключ? (y/N) y
Выберите, где хранить ключ:
   (1) Ключ подписи
Ваш выбор? 1
Key does not match the card's capability.
Ваш выбор?

И все…
Почему предлагается только ключ подписи?
Может ли быть так, что просто тупо не хватает памяти на МК? Там всего 64К.
Ну и главный вопрос — что делать? (Купить нормальный девайс не предлагать :) )

У вас две проблемы.


Первая здесь: "sec rsa4096".


Прошивка GNUK 1.0. не поддерживает RSA ключи длиннее, чем 2048 бит. Более того, официальный FAQ от команды GNUPG не рекомендует использовать ключи rsa4096, поскольку при незначительном увеличении секретности они очень существенно повышают нагрузку на устройство шифрования.


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


Попробуйте сгенерировать и сохранить на брелке ключ подписи, а потом импортировать ssh-ключ командой addcardkey.


Я не стал затирать свой ключ, но диалог выглядел так:


$gpg --edit-key 2A4F41ABEFF2949F  
gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Секретный ключ доступен.

sec  rsa2048/2A4F41ABEFF2949F
          создан: 2020-04-16     годен до: никогда     назначение: C
     доверие: неизвестно    достоверность: неизвестно
[ неизвестно ] (1). temporary_id

gpg> addcardkey
Signature key ....: 5F3E 0DF0 FC07 5B76 3A7B  5775 A983 03F7 B6C6 FB1E
Encryption key....: 0651 C964 C454 0364 D854  9D58 AF38 C438 1272 BE24
Authentication key: 6A2B 1962 75F3 6364 F18B  DFF4 10A4 26A5 879E 9B45

Выберите тип создаваемого ключа:
   (1) Ключ подписи
   (2) Ключ шифрования
   (3) Ключ удостоверения личности
Ваш выбор? 3

gpg: WARNING: such a key has already been stored on the card!

Заменить существующий ключ? (y/N) y
gpg: error clearing forced signature PIN flag: Операция отменена

gpg>
Автору спасибо! Подсказка про версию 1.0 очень помогла. Тоже получил от китайцев чип на 64к и долго пытался активировать второй блок. Правда вместо второго STM использую Pi, там же стразу и gnuk компилировал.
Only those users with full accounts are able to leave comments. Log in, please.