Параметры сертификата для подписи кода - PullRequest
22 голосов
/ 31 октября 2008

Мне поручили купить цифровой сертификат для моей компании, чтобы подписать наш код. Мы разрабатываем приложения в пространстве Microsoft - в основном WPF или веб-приложения.

Я изучил варианты и нашел, что Comodo имеет хорошие цены и отзывчив, и мы готовы пойти дальше и купить сертификат через них ... однако в форме регистрации есть различные варианты закрытых ключей, которые я не могу слишком уверен, а именно:

  1. СНТ

    • Базовый поставщик криптографии Microsoft
    • Поставщик криптографических смарт-карт Microsoft Base
    • Microsoft Enhanced Cryptographic Provider v1.0
    • Поставщик программного обеспечения для шифрования Microsoft
  2. Размер ключа

    • 1024
    • 2048
    • 4096
  3. Exportable

    • Да / Нет
  4. Защищено пользователем?

    • Да / Нет

Просто интересно, что все это значит, и каковы наилучшие варианты для наших требований? Любые советы / предложения будут оценены

спасибо, куча Грег

Ответы [ 3 ]

22 голосов
/ 31 октября 2008

Для «большинства целей» рекомендуются следующие опции:

Базовый поставщик криптографии Microsoft Размер ключа: 2048 Экспорт: да Защищено пользователем: Да

Если честно, я не знаком с различными CSP, но База каждый раз выполняет эту работу за меня.

Размер ключа делает ключи более трудными для взлома, но более 2048 битов для краткосрочного и среднесрочного ключа (3-5 лет) вполне достаточно (ИМХО).

Exportable позволяет экспортировать пару секретный ключ / сертификат - это необходимо для резервного копирования!

Защищенный пользователем означает, что вы должны вводить пароль каждый раз, когда хотите использовать сертификат, настоятельно рекомендуется для предотвращения случайного или злонамеренного подписания кода вашим сертификатом.

Надеюсь, это поможет.

10 голосов
/ 31 октября 2008

Исторически сложилось так, что у «базового» поставщика криптографии было искусственное ограничение на длину ключа, а у «расширенного» поставщика это ограничение было удалено. Это позволило Microsoft соблюдать экспортные законы США, удалив расширенного поставщика в определенных версиях.

По-видимому, с изменениями в законе об экспорте Microsoft сняла ограничение с базового провайдера, разрешив также более длинные ключи (но сохранила название для совместимости)

1 голос
/ 30 апреля 2013

Относительно "провайдера криптографического программного обеспечения Microsoft" - я думаю, что он должен быть "сильным" (не "программным").

На практике, где я работаю, база дает 512-битную длину ключа (которая больше не поддерживается или не работает на серверах MS после недавнего исправления - читайте на KB2661254). Вы хотите по крайней мере 1024, но 2048 - лучший выбор.

Осторожно: экспортируемый закрытый ключ необходим для резервного копирования и / или переноса на другой сервер (и, я думаю, он необходим для подписи кода / сценариев), но он допускает попадание его в чужие руки, после чего нежелательные сценарии могут быть подписал и запустил на ваших серверах, как только вы доверяете этому сертификату! Будьте внимательны, где и как вы храните его, и используйте надежную фразу-пароль!

Двойная проверка. Скорее всего, для запуска подписанных сценариев PowerShell вам понадобится установить сертификат Trusted Root CA (центр сертификации, выдавший сертификат подписи кода), а также сам сертификат в «Trusted Publishers».

...