Подтвердить что ты не робот

Что особенного в сертификате подписи кода?

Отличается ли он от какого-либо другого сертификата, который я могу сгенерировать с помощью makecert или купить у некоторых авторитетов?

4b9b3361

Ответ 1

Как упоминалось Mile L и Boot to Head, использование расширенного ключа определяет, для чего ключ может использоваться.

Большинство коммерческих сертификационных центров (Verisign и др.) выдают сертификаты для отдельных целей или как можно меньше.

Они используют это сужение puropse, чтобы вырезать разные рынки для сертификатов, а затем оценивать их соответственно.

Вы видите, что они продают разные сертификаты подписывания объектов для ассемблеров Windows/Java/Office/Adobe Air и т.д., когда (в большинстве случаев) результирующий сертификат тот же.

Например, Comodo codesigning, выданный здесь, может подписать Java-апплеты, приложения WebStart, расширения Firefox и даже сборки Windows.

Ответ 2

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

Решение проблемы подписи зависит от среды исполнения. Для исполняемого двоичного файла подпись часто сохраняется в отдельном файле. В Java вы можете иметь подпись, встроенную в исполняемый JAR файл.

У Microsoft есть хорошая ссылка на введение в процесс подписания.

Ответ 3

Это зависит от того, что вы с ним делаете. Если вы хотите, чтобы сертификат был принят браузером в SSL-связи, он должен иметь корневой сертификат, установленный в браузере. Сертификаты, созданные властями, уже имеют корневые сертификаты, установленные в браузерах.

Если вы используете сертификат только для подписывания сборки, вам это не нужно. Это зависит от того, кто проверяет сертификат и заботится ли он, является ли корень известным авторитетом.

Подробнее здесь:

http://en.wikipedia.org/wiki/Root_certificate

Ответ 4

Насколько мне известно, у сертификатов есть атрибут "ключевого использования", который описывает, что использует сертификат, предназначен для: SSL-сервера, подписи кода, подписания электронной почты и т.д. Поэтому я думаю, что это касается ОС или веб-браузера, или почтовый клиент, чтобы проверить эти биты.

Ответ 5

Когда сертификат вызывается в действие, роль, которую он хочет выполнить, так же важна, как идентификация. Это не только о личности, но и о ролевой авторизации. Сертификат защиты электронной почты не должен выполнять аутентификацию сервера. Вопросы безопасности диктуют необходимое ограничение в мощности, предоставляемой с помощью единого сертификата. Основной API должен обеспечивать правильное использование, будь то через ОС или абстракцию, такую ​​как .NET Framework.

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

Boot To The Head прав... есть атрибут Enhanced Key Usage, который дает описание того, что утверждает cert (например, аутентификация сервера или в случае моего сертификата CA: Digital Signature, Certificate Подписание, Внебиржевая подпись CRL, Подписание CRL). Посмотрите подробности в свойствах сертификата, и вы найдете его.

Ответ 6

Я бы также добавил, что сборка .NET должна быть сильно названа (которая требует ее подписания), чтобы быть добавленной в GAC.

Существуют разные типы сертификатов... из центра сертификации, который поставляется на сервере Win 2003, вы можете запросить:

  • Аутентификация клиента
  • Защита электронной почты
  • Аутентификация сервера
  • Подписание кода
  • Подписание отметки времени
  • IPSec
  • Другое