id: Гость   вход   регистрация
текущее время 15:43 07/12/2019
Автор темы: andreyvel, тема открыта 18/10/2011 15:02 Печать
Категории: криптография, софт, pgp, gnupg, openpgp, эцп, хард, смарт-карты, стандарты
http://www.pgpru.com/Форум/РаботаСGnuPG/КартыOpenPGPSmartCardV2-Эксперименты
создать
просмотр
ссылки

Карты OpenPGP smart card v2 – эксперименты


Сегодня приехали ко мне две эти карточки. Начал эксперименты. Сразу появились непонятки.



Выдает нормальную информацию по карте


Однако:


По этой-же причине gpg не может перенести существующие ключи на карту – ругается на демон scdaemon.


Очень смущает что --card-status (и --card-edit тоже) работают нормально, а другие команды что-то не хотят. По идее, нужно как-то настроить scdaemon, но совершенно не понимаю как. Может у кого-то есть ссылки на информацию как это сделать?


 
На страницу: 1, 2 След.
Комментарии
— andreyvel (18/10/2011 15:22, исправлен 18/10/2011 15:22)   профиль/связь   <#>
комментариев: 15   документов: 2   редакций: 0

Итак, я сам в конце концов нашел часть решения (не уверен что полностью, но gpg2 --card-status теперь работает)...


Нужно сначала посмотреть список ридеров:


Например, у меня выдает вот так:


Далее в файле /.gnupg/scdaemon.conf прописать имя ридера в качестве reader-port. Что интересно – если в этом параметре указывать номер, то оно не работает. У меня получилось вот так:

После этого начало что-то работать.

— unknown (18/10/2011 15:26)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
По названию топика решил, что сообщат что-то интересное о попытках взлома и нахождения уязвимостей.
— andreyvel (18/10/2011 15:53)   профиль/связь   <#>
комментариев: 15   документов: 2   редакций: 0
Ну, это тоже буду исследовать. В данный момент проверяю извлекаемость секретных ключей с карты.
— andreyvel (18/10/2011 16:05)   профиль/связь   <#>
комментариев: 15   документов: 2   редакций: 0
Может конечно и глупый тест, но на всякий случай проверил...

1. Со вставленной картой сделал backup ключа
2. Вынул карту, стер ключ
3. Восстановил ключ из бэкапа

После этого ключ все-равно работает только с картой.

Изучил подробнее бэкап – видно сразу что в нем размер секретного ключа существенно меньше чем у бэкапа обычного ключа. Т.е. в данном случае, насколько я понял, в бэкап помещается лишь служебная информмация о секретном ключа, а самого его в бэкапе нет.
— unknown (18/10/2011 16:20)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Изучил подробнее бэкап – видно сразу что в нем размер секретного ключа существенно меньше чем у бэкапа обычного ключа.

Возможно по аналогии с тем, что выдаёт paperkey.
— andreyvel (18/10/2011 16:36)   профиль/связь   <#>
комментариев: 15   документов: 2   редакций: 0
Возможно по аналогии с тем, что выдаёт paperkey.

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

Какой-бы утилитой посмотреть детальную информацию по ключу?
— sentaus (18/10/2011 16:38)   профиль/связь   <#>
комментариев: 1060   документов: 16   редакций: 32
Изучил подробнее бэкап – видно сразу что в нем размер секретного ключа существенно меньше

Там ссылки на карту содержится (card stub). Они нужны только чтобы можно было проверять наличие ключа "условно".

Кстати, если удалить закрытый ключ или всю связку, а затем вызвать gpg --card-status, то gpg пересоздаст card stubs.
— unknown (18/10/2011 17:09)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

cat [keyfile] | gpg --list-packets
— andreyvel (18/10/2011 18:35, исправлен 18/10/2011 18:39)   профиль/связь   <#>
комментариев: 15   документов: 2   редакций: 0
... то gpg пересоздаст card stubs.

А почему у меня не пересоздает?


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

— sentaus (18/10/2011 21:38)   профиль/связь   <#>
комментариев: 1060   документов: 16   редакций: 32
Стабы пересоздаются, если выполнены два условия:
1) на связке открытых ключей есть _открытый_ ключ, соответствующий закрытому ключу на карте
2) на связке закрытых ключей нет уже созданного стаба или самого закрытого ключа.
— andreyvel (18/10/2011 21:57)   профиль/связь   <#>
комментариев: 15   документов: 2   редакций: 0
sentaus, спасибо за пояснение. Так сработало.

Т.е. для организации работы с ключем в произвольном месте нужно только что-бы соответствующий публичный ключ был на каком-нибудь сервере ключей и при мне была карта? Очень удобно.
— andreyvel (18/10/2011 22:20)   профиль/связь   <#>
комментариев: 15   документов: 2   редакций: 0
Теперь пытаюсь сделать следующую штуку...

Есть у меня рабочий ключ, которым я пользуюсь. Но сразу не хотелось-бы его переносить на карту. Хочу сделать его бэкап на карте. Экспортировал секретный ключ, командой bkuptocard перенес его в качестве ключа подписи, шифрования и авторизации (чувствую что сделал не то, но как надо не совсем понимаю).

Затем удалил секретный ключ из сделал card-status. Первый ключ из пары с тем-же идентификатором что и основной (для подписи и сертифицирования) восстановился нормально. А вот подключ для шифрования не восстановился.

Ладно, попробовал через export-secret-subkeys экпортировать только этот подключ в файл и залить его через bkuptocard в качестве ключа шифрования. Однако, gpg ругается и выдает ошибку:

Смысла этой ошибки я что-то не понял.
— sentaus (18/10/2011 22:36)   профиль/связь   <#>
комментариев: 1060   документов: 16   редакций: 32

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


Да.

перенес его в качестве ключа подписи, шифрования и авторизации (чувствую что сделал не то, но как надо не совсем понимаю).


Ошибка, возможно фатальная. На карте может быть три ключа: ключ подписи, ключ шифрования и ключ аутентификации. Это разные ключи. Главный ключ (или подключ подписи) нужно добавлять на карту как ключ подписи, а подключ шифрования – как ключ шифрования. Тавтология получилась :) В общем, роли надо просто соблюдать. :) Кстати, странно, что вам удалось поместить на карту главный ключ в роли ключа шифрования, gpg обычно простейшие проверки ролей делает. Возможно у него тоже была прописана возможность шифрования.

Ключи аутентификации gnupg не используются, их можно для SSH применить.

А вот подключ для шифрования не восстановился.

Неудивительно. Связку вы удалили, а на карте только три копии главного ключа.

Смысла этой ошибки я что-то не понял.

Отсутствует закрытый подключ, причина описана выше.
— andreyvel (18/10/2011 22:37)   профиль/связь   <#>
комментариев: 15   документов: 2   редакций: 0
В общем, получилось вот таким способом (учитывая что локальный вариант ключа у меня в бэкапе):

1. Зашел в --edit-key в свой ключ;
2. toggle для переключения на секретные ключи;
3. key <ID подключа для шифрования>;
4. keytocard

При этом gpg выдал мне только один вариант – "ключ для шифрования".

Вот после этого на карту попал правильный ключ для шифрования. Попробовал удалить секретный ключ и восстановить через card-status – все сработало.

После этого удалили секретный ключ и восстановил файловую версию. Карта будет резервом.
— andreyvel (18/10/2011 22:48)   профиль/связь   <#>
комментариев: 15   документов: 2   редакций: 0
Еще фишка... Можно обойтись и без публичного ключа, таскаемого с собой. В карте есть поле "URL of public key", в которое можно прописать сервер ключей, на котором лежит этот публичный ключ (я пробовал hkp сервер, но видел в инете примеры что можно просто ключ в виде asc файла где-то выложить и поставить в url http ссылку). Я так прописал, потом полностью удалил ключ с компа. Затем сделал:

1. Зашел в --card-edit и дал команду "fetch";
2. Вышел из --card-edit и запустил --card-status;

После этого получил полноценный ключ, привязанный к карте.
На страницу: 1, 2 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3