Программное обеспечение для цифровой подписи - самозаверяющий сертификат

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

Я доберусь до точки, где я получу сертификат от CA, но до этого я хотел бы знать, что я делаю, поэтому я сделал тест:

Я создал самоподписанный сертификат:

makecert -r -ss myPrivateCert -sk c:test -n "CN=My Company Inc." testCert.cer

затем подписал исполняемый файл:

signtool sign /v /s myPrivateCert /n "My Company Inc." /t http://timestamp.verisign.com/scripts/timstamp.dll c:foldermy_installer.exe

для обеих команд, я получил успех.

Шаг 3: "установить тест Сертификат": http://msdn.microsoft.com/en-us/library/bb756995

успехов.

(Примечание: в папке c:test, Я разместил сертификаты, загруженные из предложенного Microsoft списка перекрестных сертификатов, как VeriSign Class 3 Public Primary Certification Authority - G5.cer - Я просто предполагаю, что я должен был это сделать.)

Я бегу certmgr c:foldermy_installer.exe

и я получил список из 3 сертификатов, которые я добавил, с темой, эмитентом, серийным номером... (от моей компании Inc. и VeriSign), так что, видимо, все в порядке.

даже после этого, если я дважды щелкните установщик (или исполняемый файл), я получаю сообщение UAC о неизвестном издателе...

Итак, что еще мне нужно сделать, чтобы эта коробка либо исчезла, либо сказала "моя компания Inc."для продюсера ? И то только для местной машины, делающ все вручную...

для тестирования по-настоящему, я предполагаю, что мой клиент является средой VirtualBox... и что ?
Следующий шаг: переместите установщик в VirtualBox и запустить его ?

но как я могу сказать клиенту о ключе или сертификате или что-то еще ? Я копирую файл cer вместе с exe ? Я должен положить его в специальное место ? Копирую ли я другие файлы ? Должен ли я снова запустить mmc ? Должны ли пользователи делать что-то подобное ? Потому что кажется чрезвычайно сложным, с точки зрения пользователя... Это очень сложно...

Я предполагаю, что, если я куплю реальный сертификат от Verisign, например, он будет аутентификация через интернет, и мне не придется делать ничего другого (кроме двух команд выше, минус-r) ?

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

27
задан Blacklight Shining
26.03.2023 13:01 Количество просмотров материала 2695
Распечатать страницу

1 ответ

Он не "аутентифицируется через интернет" (кроме, возможно, проверки списка отзыва сертификатов (CRL))-корневые ЦС жестко подключены к операционной системе и установлены либо центром обновления Windows, либо диском установки ОС. Другими словами, они представляют собой набор статических данных на жестком диске, который не является (легко) изменяемым.

Как вы получаете раздражает окно, чтобы уйти либо:

  • доверять вашей подписи CA snakeoil (как правило, плохая идея, но это сработает); или
  • получить его подписали публично доверенным официальным корневым CA или одним из их посредников.

вы процитировали Verisign. Хороший. Они являются одним из нескольких возможных поставщиков для предоставления сертификата подписи кода. Окно все еще появляется, потому что, AFAIK, Windows запрограммирован на автоматическое всплывающее предупреждение для всех самозаверяющих сертификатов. Если бы вы попытались создать CSR на основе собственного созданного корневого ЦС, вы могли бы заставить коробку исчезнуть доверяю вашему корневому центру сертификации, и это сработает. Но тогда вам придется заставить своих клиентов доверять вашему корневому ЦС, что в большинстве случаев противоречит цели. Поэтому сеть общественного доверия-это самый простой путь. Поставщик обычно даже предоставляет явные инструкции по использованию службы и подписанию кода.

2
отвечен Horn OK Please 2023-03-27 20:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх