Карты OpenPGP smart card v2 – эксперименты
Сегодня приехали ко мне две эти карточки. Начал эксперименты. Сразу появились непонятки.
Выдает нормальную информацию по карте
Однако:
По этой-же причине gpg не может перенести существующие ключи на карту – ругается на демон scdaemon.
Очень смущает что --card-status (и --card-edit тоже) работают нормально, а другие команды что-то не хотят. По идее, нужно как-то настроить scdaemon, но совершенно не понимаю как. Может у кого-то есть ссылки на информацию как это сделать?
комментариев: 15 документов: 2 редакций: 0
Итак, я сам в конце концов нашел часть решения (не уверен что полностью, но gpg2 --card-status теперь работает)...
Нужно сначала посмотреть список ридеров:
Например, у меня выдает вот так:
Далее в файле /.gnupg/scdaemon.conf прописать имя ридера в качестве reader-port. Что интересно – если в этом параметре указывать номер, то оно не работает. У меня получилось вот так:
После этого начало что-то работать.
комментариев: 9796 документов: 488 редакций: 5664
комментариев: 15 документов: 2 редакций: 0
комментариев: 15 документов: 2 редакций: 0
1. Со вставленной картой сделал backup ключа
2. Вынул карту, стер ключ
3. Восстановил ключ из бэкапа
После этого ключ все-равно работает только с картой.
Изучил подробнее бэкап – видно сразу что в нем размер секретного ключа существенно меньше чем у бэкапа обычного ключа. Т.е. в данном случае, насколько я понял, в бэкап помещается лишь служебная информмация о секретном ключа, а самого его в бэкапе нет.
комментариев: 9796 документов: 488 редакций: 5664
Возможно по аналогии с тем, что выдаёт paperkey.
комментариев: 15 документов: 2 редакций: 0
Ну, проверил эти ключи через paperkey. Он для обычных ключей все-равно выдает данные, большие по размеру, чем для ключа с карты.
Какой-бы утилитой посмотреть детальную информацию по ключу?
комментариев: 1060 документов: 16 редакций: 32
Там ссылки на карту содержится (card stub). Они нужны только чтобы можно было проверять наличие ключа "условно".
Кстати, если удалить закрытый ключ или всю связку, а затем вызвать gpg --card-status, то gpg пересоздаст card stubs.
комментариев: 9796 документов: 488 редакций: 5664
cat [keyfile] | gpg --list-packets
комментариев: 15 документов: 2 редакций: 0
А почему у меня не пересоздает?
Я как раз пытаюсь выяснить самодостаточны-ли ключи на карте. Пока вижу что они имеют смысл только с ключами из базы GPG. Если-бы было как вы пишете, это было-бы отлично, но пока все говорит о противоположном.
комментариев: 1060 документов: 16 редакций: 32
1) на связке открытых ключей есть _открытый_ ключ, соответствующий закрытому ключу на карте
2) на связке закрытых ключей нет уже созданного стаба или самого закрытого ключа.
комментариев: 15 документов: 2 редакций: 0
Т.е. для организации работы с ключем в произвольном месте нужно только что-бы соответствующий публичный ключ был на каком-нибудь сервере ключей и при мне была карта? Очень удобно.
комментариев: 15 документов: 2 редакций: 0
Есть у меня рабочий ключ, которым я пользуюсь. Но сразу не хотелось-бы его переносить на карту. Хочу сделать его бэкап на карте. Экспортировал секретный ключ, командой bkuptocard перенес его в качестве ключа подписи, шифрования и авторизации (чувствую что сделал не то, но как надо не совсем понимаю).
Затем удалил секретный ключ из сделал card-status. Первый ключ из пары с тем-же идентификатором что и основной (для подписи и сертифицирования) восстановился нормально. А вот подключ для шифрования не восстановился.
Ладно, попробовал через export-secret-subkeys экпортировать только этот подключ в файл и залить его через bkuptocard в качестве ключа шифрования. Однако, gpg ругается и выдает ошибку:
Смысла этой ошибки я что-то не понял.
комментариев: 1060 документов: 16 редакций: 32
Да.
Ошибка, возможно фатальная. На карте может быть три ключа: ключ подписи, ключ шифрования и ключ аутентификации. Это разные ключи. Главный ключ (или подключ подписи) нужно добавлять на карту как ключ подписи, а подключ шифрования – как ключ шифрования. Тавтология получилась :) В общем, роли надо просто соблюдать. :) Кстати, странно, что вам удалось поместить на карту главный ключ в роли ключа шифрования, gpg обычно простейшие проверки ролей делает. Возможно у него тоже была прописана возможность шифрования.
Ключи аутентификации gnupg не используются, их можно для SSH применить.
Неудивительно. Связку вы удалили, а на карте только три копии главного ключа.
Отсутствует закрытый подключ, причина описана выше.
комментариев: 15 документов: 2 редакций: 0
1. Зашел в --edit-key в свой ключ;
2. toggle для переключения на секретные ключи;
3. key <ID подключа для шифрования>;
4. keytocard
При этом gpg выдал мне только один вариант – "ключ для шифрования".
Вот после этого на карту попал правильный ключ для шифрования. Попробовал удалить секретный ключ и восстановить через card-status – все сработало.
После этого удалили секретный ключ и восстановил файловую версию. Карта будет резервом.
комментариев: 15 документов: 2 редакций: 0
1. Зашел в --card-edit и дал команду "fetch";
2. Вышел из --card-edit и запустил --card-status;
После этого получил полноценный ключ, привязанный к карте.