Как я могу предотвратить необходимость переподписывать Свой Код каждые 1 или 2 года?

StackOverflow https://stackoverflow.com/questions/912955

Вопрос

Я читал Что происходит, когда срок действия сертификата подписи кода истекает - Переполнение стека и размышляю о более основательном ответе.Приведенный ответ был больше посвящен настройке вашего собственного центра сертификации.Даже с вашим собственным центром сертификации вам все равно придется иметь дело с истекающими сертификатами кода.

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

Доверенная (цифровая) временная метка позволяет цифровой подписи оставаться действительной даже после истечения срока действия самого сертификата.Вам нужно будет повторно подписать код новым сертификатом только в том случае, если вы внесли изменения.

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

Прямо сейчас это относится к сценариям PowerShell, но в конечном итоге у меня возникнет та же проблема с другим кодом.

Обновить:Пример того, как подписать PS-скрипт меткой времени (вы можете создать скрипт для этого):

Set-AuthenticodeSignature -filepath "D:\Projects\A Sample\MyFile.ps1" 
  -cert gci cert:\CurrentUser\My -codesigning 
  | where -Filter {$_.FriendlyName -eq "Thawte Code Signing"}
  -IncludeChain All 
  -TimeStampServer "http://timestamp.verisign.com/scripts/timstamp.dll"

Затем, чтобы увидеть Сертификат Подписывающего лица и сертификат временной метки, вы можете сделать это:

Get-AuthenticodeSignature MyFile.ps1 | fl *

Он предоставляет вам Тему (CN, OU и т.д.), Эмитента, даты до / После и отпечатки пальцев как для вашего сертификата, так и для сертификата с меткой времени.Вы также получите сообщение, указывающее на статус подписи.

Это было полезно?

Решение

Вам лучше выбрать одного из надежных поставщиков сертификатов (Verisign, Thawte, Comodo и т.д.).Это позволяет вам подписывать свое программное обеспечение без того, чтобы пользователь явно доверял вашему частному корневому центру сертификации.Мы использовали как Verisign, так и Thawte, Comodo и даже GoDaddy с отметками времени без каких-либо проблем с тем, что программное обеспечение становилось недействительным даже спустя годы после истечения срока действия сертификата.

Другие советы

Отметка времени - это бесплатная услуга. На самом деле только доверенный поставщик проверяет, что вы подписали файл в определенное время.Служба временных меток Verisign является стандартной.Последний пример в справке по Set-AuthenticodeSignature демонстрирует, как его использовать.

Ли Холмс [MSFT] Разработка Windows PowerShell Корпорация Microsoft

В конце концов, вы действительно не сможете избежать необходимости отказаться от кода.Преимущество запуска собственного центра сертификации заключается в том, что вы можете выбрать выдачу сертификатов подписи кода с более длительным сроком службы, чем по умолчанию, что позволит вам дольше ждать, прежде чем что-либо отменять.Недостатком, конечно, является необходимость иметь дело с другой службой или сервером (вашим центром сертификации).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top