Параметры сертификата подписи кода
Мне была поручена покупка цифрового сертификата для моей компании, чтобы подписать наш код. Мы разрабатываем приложения в пространстве Microsoft - в основном WPF или Web Based.
Я исследовал варианты и нашел Comodo хорошим и отзывчивым, и мы готовы пойти и купить сертификат через них. Однако в форме регистрации есть различные варианты закрытого ключа, которые я не слишком уверен, а именно:
-
СНТ
- Microsoft Cryptographic Provider
- Поставщик криптографической карты Microsoft Base
- Microsoft Enhanced Cryptographic Provider v1.0
- Поставщик криптографических программ Microsoft
-
Размер ключа
-
Exportable?
-
Пользователь защищен?
Просто интересно, что все это значит, и какие лучшие варианты для наших требований? Любые советы/предложения будут оценены
спасибо кучам
Грег
Ответы
Ответ 1
Для "большинства целей" рекомендуются следующие варианты:
Microsoft Base Cryptographic Provider
Размер ключа: 2048
Экспортируемый: Да
Защищенный пользователем: Да
Честно говоря, я не знаком с разными CSP, но Base делает эту работу каждый раз для меня.
Размер ключа делает ключи сложнее взломать, но более 2048 бит для ключа с коротким и среднесрочным периодом (3-5 лет) достаточно (IMHO).
Экспортируемый позволяет экспортировать пару закрытого ключа/сертификата - необходимо для его резервного копирования!
Защищенный пользователем означает, что вы должны вводить пароль каждый раз, когда хотите использовать сертификат, - настоятельно рекомендуется для предотвращения случайного или злонамеренного подписания кода с вашим сертификатом.
Надеюсь, что это поможет.
Ответ 2
Исторически, "базовый" поставщик криптографии имел искусственное ограничение по длине ключа, а "расширенный" провайдер имел ограничение. Это позволило Microsoft соблюдать законы США об экспорте, удалив расширенный поставщик в определенных версиях.
По-видимому, с изменениями в законодательстве об экспорте Microsoft удалила ограничение с базового провайдера, что позволило увеличить длину ключа (но сохранила имя для совместимости)
Ответ 3
Что касается "Microsoft Cryptographic Provider" - я думаю, что это должно быть "сильным" (а не "программным обеспечением" ).
На практике, где я работаю, база дает 512-битную длину ключа (которая больше не поддерживается или работает на серверах MS после недавнего обновления - читайте на KB2661254). Вы хотите по крайней мере 1024, но 2048 - лучший выбор.
Остерегайтесь: экспортируемый закрытый ключ необходим для резервного копирования и/или переноса на другой сервер (и необходим для подписи кода/сценариев, я думаю), но вводит возможность его попадания в чужие руки, после чего нежелательные сценарии могут быть подписывается и запускается на ваших серверах, как только вы доверяете этому сертификату! Будьте особенно осторожны в том, где/как вы его храните и используете сильную кодовую фразу!
Двойная проверка: вам, скорее всего, понадобится доверенный корневой сертификат CA (CA, который выдал сертификат подписи кода), а также ваш сертификат в "Trusted Publishers", чтобы получить подписанные сценарии PowerShell для запуска.