2010-09-07 2 views
7

Большинство УЦ продают код подписи сертификатов в различных "продуктов", как Verisign или CERTUM:Разница между Authenticode, SPC и Java CodeSign?

  • Microsoft Authenticode - "Позволяет подписывать EXE, OCX, DLL, бла ..."

  • Java CodeSign - "Позволяет подписывать Java-код"

  • Software Издатель сертификата - "Позволяет подписывать программное обеспечение"

Ну, я ДЕЙСТВИТЕЛЬНО смущен этим. В чем разница между всеми этими продуктами - кроме ЦЕНЫ? Я несколько раз просил Verisign и другие центры сертификации с тех пор, как мне было любопытно, но ответа не получил.

Я получил сертификат Authenticode от Certum CA. Я зарегистрировал его в Internet Explorer, экспортировал его как PKCS # 12 PFX и мог подписывать EXE, DLL, ... как и обещал.

Теперь ... Я попытался импортировать этот PFX в Java с помощью keytool, а затем попытался подписать JAR. И это сработало!

И вот таинственный сертификат «Издатель программного обеспечения» как продукт. Я не знаю, что я могу/должен подписать с этим ... Мак? Linux? Не является ли также «Microsoft Authenticode» сертификатом издателя программного обеспечения? Разве это не программное обеспечение EXE? Это меня действительно смущает.

Итак, теперь мой вопрос: когда я заказал сертификат Microsoft Authenticode, является ли он незаконным использовать его для подписи, например. JAR-файлы или, если возможно, любой другой контент? Кажется, что нет никаких технических различий между этими сертификатами. Все эти продукты должны иметь те же коды, что и EKU-OID «1.3.6.1.5.5.7.3.3», что не создает различий между EXE, JAR, Adobe Air и тем, что, черт возьми, существует там. Итак, если все сертификаты «CodeSigning» технически равны, почему я должен решить тогда, если я хочу быть «разработчиком Java» или «Разработчиком Windows» или «Разработчиком программного обеспечения»?

Возможно, есть еще различия в сертификате? Может быть, я получаю недостаточно прав в JAR, когда я использую Authenticode-certs для подписания?

(PS: Я не использую мое программное обеспечение коммерчески)

+0

Знаешь, имея дело с сертификатами (мы разрабатываем и продаем библиотеку PKI), у меня одинаковые вопросы и ответа нет. Это кажется маркетинговой BS, потому что, как вы правильно заметили, ключевое использование одинаково, и с технической точки зрения сертификаты одинаковы. Возможно, они пытаются обмануть некоторых пользователей в покупке нескольких разных сертификатов или выпустить их непосредственно в соответствующем формате (PKCS # 7/PKCS # 8, JKS, PKCS # 12). –

+0

Спасибо за ваш комментарий. Ну, что вы думаете? Может ли CA отозвать мой сертификат, если они узнают, что я также подписываю программное обеспечение JAR?Я очень не уверен, что это соответствует их юридическим условиям, так как есть эти «продукты». –

+0

Извините, что не отвечал раньше - ваш вопрос не был замечен. Сейчас я снова изучаю этот вопрос, и для GlobalSign CA нет никаких указаний в их документах, которые явно запрещают использование сертификатов Authenticode для Adobe AIR. Однако может случиться, что они рассматривают это как нарушение Соглашения о подписчике (хотя там нет такого ограничения). Таким образом, у меня возникает сама эта проблема (пытаясь решить, нужно ли мне покупать другие сертификаты для разных типов подписей) и не имеет решения. –

ответ

2

Там нет никакой технической разницы, как вы уже догадались. При правильной цепочке инструментов сертификат для подписи приложений Java может использоваться для подписи исполняемых файлов Windows.

См. Например Jsign, инструмент для подписи исполняемых файлов Windows с использованием хранилища ключей Java или стандартного хранилища ключей PKCS # 12.

1

Я написал короткую статью о преобразовании Java-сертификата и использовании его для Authenticode. Вы можете найти его здесь: http://blog.botha.us/sarel/?p=21

Мы делали это в течение многих лет без каких-либо негативных последствий.