Редактировать с 1/24/2015 : невозможно использовать другие доверенные центры сертификации. Вопрос и ответ не устарел:
WinQual по-прежнему отклоняет подпись:
![enter image description here](https://i.stack.imgur.com/vkivZ.png)
когда мы уже установили, что это действительная цифровая подпись:
![enter image description here](https://i.stack.imgur.com/Ld1JC.png)
Для полноты я оставлю правку ниже, что кто-то другой сделал; просто чтобы показать, как он ошибался. И он может жить с этим позором:
Редактировать по состоянию на 2014 год: теперь можно использовать другие доверенные центры сертификации. Вопрос и ответ устарели.
В 2005 году я попытался создать учетную запись WinQual в Microsoft, чтобы я мог получить наши (если они есть) файлы аварийного дампа, отправленные автоматически через Windows Error Reporting (WER). мне не разрешили получить свои аварийные дампы, потому что у меня нет сертификата Verisign. Вместо этого у меня есть более дешевый, генерируемый дочерней компанией Verisign: Thawte.
Метод, в котором вы присоединяетесь: вы подписываете цифровую подпись образца, который они предоставляют. Это доказывает, что вы являетесь тем же лицом, подписавшим приложения, с которого они получали аварийные дампы в дикой природе.
Криптографически закрытый ключ необходим для генерации цифровой подписи на исполняемом файле. Только владелец этого закрытого ключа может создать подпись для соответствующего открытого ключа. Неважно, кто сгенерировал этот закрытый ключ. Это включает сертификаты, которые генерируются из:
Тем не менее, WinQual от Microsof принимает только цифровые сертификаты, сгенерированные Verisign. Даже дочерние компании Verisign не достаточно хороши (Thawte).
Может ли кто-нибудь придумать какую-либо техническую, юридическую или этическую причину, по которой Microsoft не хочет принимать сертификаты для подписи кода? На сайте WinQual написано:
Почему требуется цифровой сертификат
для Winqual Членство?
Цифровой сертификат помогает защитить
ваша компания от людей, которые ищут
выдавать себя за членов вашего персонала
или кто иначе совершил бы акты
мошенничество против вашей компании. Используя
цифровой сертификат позволяет подтвердить
личность для пользователя или
организация.
Не защищен ли цифровой сертификат Thawte?
Два года спустя я отправил в WinQual напоминание о том, что я ждал, когда смогу получить доступ к своим аварийным дампам. Ответ от команды WinQual был:
Здравствуйте,
Спасибо за напоминание. У нас есть
уведомил соответствующих людей, что
это все еще запрос.
В 2008 году я задал этот вопрос на форуме поддержки Microsoft, и получил ответ:
Мы только настроены на прием VeriSign
Сертификаты на данный момент. У нас есть
не имел подавляющего спроса на
поддержка других типов сертификатов.
Что может означать отсутствие «настройки» для принятия других видов сертификатов?
Если отпечаток ключа, подписавшего тестовое приложение WinQual.exe, совпадает с отпечатком ключа, подписавшего исполняемый файл, аварийный дамп которого вы получили в дикой природе: доказано - это мои аварийные дампы, дайте их мне.
И не похоже, что есть специальный API для проверки правильности цифровой подписи Verisign, в отличие от всех других цифровых подписей. Действительная подпись действительна независимо от того, кто сгенерировал ключ.
Microsoft является бесплатным для доверия подписавшего, но это не то же самое, что и личность.
Так что это мой вопрос, может кто-нибудь придумать какую-либо практическую причину, почему WinQual не настроен для поддержки цифровых подписей?
Один человек предположил, что ответ таков: они просто ленивы:
Не то чтобы я знал, но я бы предположил
что команда работает на winQual
Система это живая команда, а не разработчик
команда - как в, личность и навыки
направлены на поддержание существующих
системы. Хотя я могу ошибаться.
Они не хотят делать работу, чтобы изменить это. Но может ли кто-нибудь придумать что-нибудь, что нужно изменить? Это та же логика, независимо от того, что сгенерировало ключ: «совпадает ли отпечаток пальца».
Чего мне не хватает?
Обновление
Приятно слышать истории других разработчиков. Таким образом, я знаю, что я не одинок, и этот вопрос может послужить средством перемен со стороны Microsoft. И даже если мое первоначальное намерение было недовольством, для того, чтобы этот вопрос действовал как StackOverflow, я ищу техническую причину , почему Microsoft могла принимать только сертификаты Verisign.
API шифрования не заботится о том, как называется компания, выпустившая сертификат: оно заботится только о том, чтобы цепочка подписчиков возвращалась к доверенному корню.
Что может происходить, что Microsoft специально не использует установленную криптографическую инфраструктуру, а вместо этого ограничивается Verisign?
Если бы кто-то мог указать на какую-либо запись в блоге, где руководитель программы или разработчик объясняет почему , я, возможно, был бы удовлетворен.
Обновление Два
Люди, похоже, не поняли смысл моего вопроса. В Windows уже имеется инфраструктура кода, обеспечивающая доверие к сертификату цифровой подписи корневым органом. Вот скриншот цифровой подписи на одном из наших подписанных исполняемых файлов.
Вы можете видеть, что наш сертификат был подписан сертификатом уполномоченного по подписи кода Thawte, который, в свою очередь, подписан Thawte:
И сертификат thawte поставляется по умолчанию с Windows:
Сервер Thawte Premium CA достаточно хорош, чтобы ему доверяли все копии Windows и Internet Explorer. И уже существует установленный API для проверки того, является ли сертификат действительным (то есть доверенным).
Когда пришли парни из WinQual, им пришлось бы уйти с их пути , чтобы избежать проверки правильного пути, и вместо этого развернуть свое собственное решение, жестко кодируя только Verisign в качестве доверенного корня. Почему они должны изо всех сил игнорировать другие доверенные корневые права доступа, права, которые отправляют на машину Windows , на которой выполняется их код, и вместо этого жесткий код Verisign?
Вместо того, чтобы делать это так, как это делают все остальные (Windows Explorer, Firefox, Chrome, Internet Explorer, Opera, CertMgr и т. Д.), Они , в частности , разрешают только Verisign. И мой вопрос почему.
Why would WER not accept code-signing certificates?
Если бы это было просто:
- потому что парень, который изначально написал это, не знал, как правильно сойти с макушки головы
- и вместо того, чтобы тратить много времени на изучение правильного пути
- он просто бросил что-то вместе
- и просто для тестирования он жестко запрограммировал только одного подписавшего
- с полным намерением вернуться позже и починить
- но код сейчас работает
- и он заработал без исправления
- и никто не хочет брать на себя ответственность за его нарушение
- и никто не хочет тратить деньги на это
- и недостаточно клиентов жалуются, чтобы сделать его приоритетным
- и даже если было много людей, жалующихся, всего за 99 $ купить Verisign
- так что вы не можете просто отпустить его и купить Verisign?
... это было бы хорошо. За исключением того, что я не верю в это. я не верю, что это был тестовый код, который сделал в производство. я чувствую, что это сознательное, конкретное решение, которое заставило их игнорировать других подписавшихся. И что они делают, и будут продолжать, только чтить Verisign.
Но из-за своей жизни я не могу думать о причине.