Можно ли запретить экспорт PIV (приватных ключей) из yubikey?
Используя Yubico PIV Tools и YubiKey PIV Manager, я могу загрузить свой клиентский сертификат TLS в слот PIV и использовать его для аутентификации в Firefox. Это замечательно. Тем не мение...
Есть ли способ предотвратить экспорт закрытого ключа PIV? Насколько я могу судить, ключ управления PIV защищает устройство только от модификации, но никак не защищает содержимое от экспорта.
Если это точно, YubiKey, похоже, на самом деле не работает как устройство PIV 2FA, так как 2-фактор предполагает "что-то, что у вас есть", и любая машина, к которой я подключаю устройство (или программное обеспечение, работающее в фоновом режиме), может просто создать полнофункциональная электронная копия.
Я написал этот вопрос на форумах Yubico.
Вот как я продемонстрировал проблему:
- Экспортировал сертификат через "YubiKey PIV Manager" (my-cert.crt)
- Удаленный сертификат от YubiKey через "YubiKey PIV Manager"
- Импортированный сертификат через "YubiKey PIV Manager" (my-cert.crt)
- Перезапущенный Firefox (с загруженным OpenSC)
- Я все еще был в состоянии подтвердить подлинность через PIV
1 ответ
TL; DR
YubiKey не позволяет экспортировать закрытый ключ, только открытый сертификат. Вместо этого я продемонстрировал (что я вижу как) ошибку в YubiKey PIV Manager. Это не удаляет закрытые ключи должным образом.
Слава Юбико
Прежде всего, хотя я собираюсь указать на то, что я считаю ошибкой в YubiKey, я должен сказать, что я был чрезвычайно впечатлен поддержкой конечного пользователя, предоставляемой Yubico. И я цитирую:
Мы стараемся помочь всем, кто подает заявку в службу поддержки. даже седая бабушка по соседству
Правильная очистка личного ключа PIV
Поскольку "Удалить сертификат" не удалял закрытый ключ из YubiKey, повторная загрузка открытого ключа (который может быть экспортирован YubiKey) привела к функциональному интерфейсу PIV.
Мне удалось продемонстрировать два других метода, которые действительно очищают закрытый ключ:
Способ 1: загрузить другой сертификат
Я не смог подтвердить подлинность, когда я:
- Загрузил мой сертификат и экспортировал копию из yubikey (my-cert.crt)
- Загрузил другой файл pfx/p12
- Загружен my-cert.crt
Метод 1.1: Генерация случайного сертификата
Недавно меня осенило, что это самый простой метод. Всего несколько нажатий кнопок в "YubiKey PIV Manager".
Способ 2: "Сброс" модуля PIV
Я не смог подтвердить подлинность, когда я:
- Загрузил мой сертификат и экспортировал копию из yubikey (my-cert.crt)
"Сбросить" мой юбикей PIV модуль
- Я сбрасываю с этой командой:
yubico-piv-tool -areset
Странно, но сначала мне пришлось заблокировать свой PIN-код и PUK. Самый простой способ выполнить следующие команды и ввести неверные данные более 3 раз (в случае PUK необходимо ввести действующий новый PIN-код и неправильный PUK-код. Ugh.):
# Use to lock out PIN yubico-piv-tool -averify-pin # Use to lock out PUK yubico-piv-tool -aunblock-pin
- Я сбрасываю с этой командой:
Это ошибка?
Учитывая, насколько болезненными являются два других способа сброса закрытого ключа, "Удалить сертификат" - безусловно, самый простой способ "стереть" ваш сертификат с устройства. Ничто не говорит о том, что необходимы два других метода.
Юбико предположил, что "сброс" был рекомендуемым действием перед передачей устройства другому пользователю.
Лично я вижу это как ошибку, но я не знаю, продан ли Юбико еще.
Вот плохой сценарий, который я представляю себе:
- Я загружаю свою пару открытого / закрытого ключа
- Я удаляю свой открытый ключ с устройства (но молча оставляю личный ключ без изменений)
- Я сбрасываю ПИН администратора
- Я передаю устройство кому-то другому для использования
- Второй человек загружает мой публичный сертификат и получает рабочую копию моей публичной / частной пары