Вопрос или проблема
В настоящее время у меня есть несколько просроченных сертификатов подписи кода от Sectigo на их USB-токенах Safenet для подписи программного обеспечения.
Я рассматриваю возможность продления и получения дополнительных сертификатов подписи кода для различных проектов и интересуюсь, могу ли я использовать тот же USB-токен для этих сертификатов. Кроме того, получение нового сертификата и токена по почте занимает довольно много времени.
Вот мои конкретные вопросы:
-
Можно ли хранить новый сертификат (от Sectigo или других поставщиков) на том же USB-токене? Нужно ли сначала отформатировать USB-токен?
-
Существуют ли какие-либо ограничения по емкости хранения токена или совместимости с различными поставщиками?
-
Существуют ли какие-либо специальные инструменты или программное обеспечение, которые мне нужны для установки нового сертификата на старый токен?
Можно ли хранить новый сертификат (от Sectigo или других поставщиков) на том же USB-токене?
Это зависит от токена и от того, как его настроил провайдер. Обычно я ожидаю, что токен останется полностью записываемым, хотя провайдер может изменить «управляющий ключ» для него, но я считаю, что это довольно редко.
Например, на сайте DigiCert есть статья о использовании SafeNet eToken 5110, который они продают, где четко указано, что управляющий ключ («пароль администратора») состоит из всех нулей, и, следовательно, токен можно использовать любым удобным способом.
Нужно ли сначала отформатировать USB-токен?
Это зависит от токена и от того, как его настроил провайдер. В общем, я бы ожидал, что форматирование не потребуется, если известен управляющий ключ, хотя токены от разных производителей могут вести себя по-разному. (В частности, для Yubikey или SafeNet eTokens это совершенно не требуется.)
Существуют ли какие-либо ограничения по емкости хранения токена?
Да, токены хранят весь сертификат и ключ внутри (в отличие от TPM), поэтому у них обычно есть ограничения — либо в терминах «слотов» (например, Yubikey), либо в килобайтах (например, SafeNet).
(В случае Yubikey его режим смарт-карты PIV изначально был разработан для эмуляции карточки “CAC” от Министерства обороны / военных, и приложение графического интерфейса показывает только четыре слота, которые имеют разное поведение, но начиная с версии Yubikey v4 эти слоты могут быть сделаны многофункциональными, и их будет около 20.)
С другой стороны, у SafeNet eToken вообще нет предопределенных слотов; его емкость измеряется в килобайтах и полностью зависит от того, что вы загружаете.)
или совместимости с различными поставщиками.
Прошивка каждого токена поддерживает только определенные алгоритмы (поскольку все подписи должны выполняться внутри токена). Например, многие токены могут обрабатывать RSA-2048, но не RSA-4096, а некоторые могут обрабатывать только эти размеры, но не промежуточные размеры; последнее всегда справедливо для криптографии EC, где будут поддерживаться только определенные кривые (например, P-256, но не Ed25519 и так далее).
Многие центры сертификации подписи кода поддерживают только токены, которые могут предоставить удостоверение о том, что ваш закрытый ключ был сгенерирован внутри токена, а не просто импортирован из файла — например, Sectigo позволит вам повторно использовать только Yubikey, но не любой другой токен. (По той же причине они настаивают на использовании токенов, то есть чтобы им не пришлось спешить аннулировать утерянные сертификаты после ошибок клиентов.)
Существуют ли какие-либо специальные инструменты или программное обеспечение, которые мне нужны для установки нового сертификата на старый токен?
Как правило, они доступны через те же инструменты или программное обеспечение, которые вам нужны для использования существующего сертификата.
-
Например, если программное обеспечение токена поставляется с модулем PKCS#11 (Windows .dll или Linux .so) для интеграции с процессом подписи, вы также можете использовать его для генерации или загрузки новых ключей. (Java-приложение Keystore Explorer может быть полезным.)
-
Точно так же, если вы установите драйверы Windows, которые делают токен видимым через CryptoAPI, вы также можете использовать тот же CryptoAPI (например, через
certutil
или MMC) для генерации нового закрытого ключа и запроса сертификата — все, что вам нужно сделать, это выбрать правильный CSP или KSP, чтобы поместить ключ в аппаратное обеспечение. (Кстати, у него также есть KSP, который позволяет создавать сертификаты, защищенные TPM.) -
Большинство токенов также поставляются со своим собственным (часто только для Windows) программным обеспечением, например, SafeNet Authentication Client или Yubikey Manager, которые предлагают специфические функции управления токенами.
Ответ или решение
Конечно, давайте рассмотрим, как использовать аппаратные USB-токены для новых сертификатов подписи кода после истечения срока действия старых.
Возможность повторного использования USB-токенов
-
Хранение новых сертификатов на старом USB-токене:
- Теоретически, вы можете сохранить новый сертификат (как от Sectigo, так и от других поставщиков) на том же USB-токене, если токен все еще доступен для записи. Однако важно отметить, что некоторые провайдеры могут изменить "управляющий ключ" токена, но подобные изменения происходят довольно редко.
- Например, на сайте DigiCert есть инструкция для SafeNet eToken 5110, где упоминается, что управляющий ключ – это ноль, и, следовательно, токен можно использовать любым удобным способом.
-
Необходимо ли форматировать USB-токен?:
- В общем случае форматирование не требуется, если известен управляющий ключ. Однако поведение может отличаться в зависимости от производителя токена. Для токенов, таких как Yubikey или SafeNet eTokens, форматирование не обязательно.
-
Ограничения по мощности хранителя токена и совместимость с различными провайдерами:
- Токены могут хранить сертификаты и ключи только в определенных пределах – например, по количеству «слотов» (как в Yubikey) или по размеру (например, в килобайтах для SafeNet).
- Важно учитывать, что каждое программное обеспечение токена поддерживает определенные алгоритмы, такие как RSA-2048, но может отсутствовать поддержка RSA-4096 или других размеров. Например, некоторые токены могут поддерживать только определенные кривые для EC-криптографии.
- Многие центры сертификации подписи кода поддерживают только токены, которые могут предоставить «удостоверение», что ваш закрытый ключ был сгенерирован в токене, а не импортирован из файла.
Инструменты и программное обеспечение для записи новых сертификатов
Чтобы загрузить новый сертификат на старый токен, вам потребуются те же инструменты и программное обеспечение, которые вы использовали для работы с существующим сертификатом:
- PKCS#11 модули: Если программное обеспечение токена включает модуль PKCS#11 (для Windows это .dll, для Linux .so), вы можете использовать его для генерации или загрузки новых ключей.
- CryptoAPI: Установка драйверов Windows, которые делают токен доступным через CryptoAPI, позволит вам использовать те же инструменты (например,
certutil
или MMC), чтобы генерировать новые закрытые ключи и запросы на сертификат. - Специальное программное обеспечение токена: Как правило, к токенам прилагается собственное программное обеспечение (например, SafeNet Authentication Client или Yubikey Manager), которое предлагает конкретные функции управления токеном.
Вывод
В заключение, вы можете повторно использовать свой аппаратный USB-токен для новых сертификатов подписи кода, если он поддерживает записи и управление, а также совместим с новыми сертификатами. Однако вам следует быть осторожным и проверить спецификации токена и требования вашего провайдера сертификатов, чтобы избежать неожиданных проблем.