Policy для отображения Security Windows диалога при установке драйвера.
От: _f_b_i_  
Дата: 20.03.14 13:39
Оценка:
Доброе время суток.

Нашелся один клиент у которого во время установки (подписанного сертификатом) нашего драйвера в x64 системе не выскакивает окошко доверяет ли пользователь нам как вендору для установки девайса.
Как результат UpdateDriverForPlugAndPlayDevices завершается с кодом ошибки 0xe0000242: The publisher of an Authenticode(tm) signed
catalog has not yet been established as trusted.

Кто знает какая установка политик безопасности отвечает в системе за уведомление пользователя о необходимости принять решение по установке драйвера?
Можно конечно объеснить пользователю как ручками добавить сертификат в список доверенных, но хотелось бы узнать есть ли более простой способ?
Разговаривать со своим системным администратором он явно не хочет, видимо подразумевая что проблемма в нашем инсталяторе, а не с настройками безопасности его системы.

Спасибо.
Re: Policy для отображения Security Windows диалога при установке драйвера.
От: boris_ Германия  
Дата: 20.03.14 14:17
Оценка:
Здравствуйте, _f_b_i_, Вы писали:

___>Доброе время суток.


Если мне не изменяет память, то при установке драйвера, сигнированного МS, такой диалог и не должен появляться
Re: Policy для отображения Security Windows диалога при установке драйвера.
От: x64 Россия http://x64blog.name
Дата: 20.03.14 20:17
Оценка:
___>Нашелся один клиент у которого во время установки (подписанного сертификатом) нашего драйвера в x64 системе не выскакивает окошко доверяет ли пользователь нам как вендору для установки девайса.
___>Как результат UpdateDriverForPlugAndPlayDevices завершается с кодом ошибки 0xe0000242: The publisher of an Authenticode(tm) signed
___>catalog has not yet been established as trusted.

А не может быть такого, что для распознавания вашего сертификата требуется обновление корневых сертификатов CAs (или как там их)? Может, он свою систему лет 10 не обновлял уже, вы на чистых свежеустановленных системах проверяли? Насчёт политик, открой gpedit.msc и там вроде фильтрация есть по ключевым словам, попробуй набрать что-то типа "Authenticode", "сертификат" или "подпись".
JID: x64j@jabber.ru
Re[2]: Policy для отображения Security Windows диалога при установке драйвера.
От: _f_b_i_  
Дата: 21.03.14 09:51
Оценка:
Здравствуйте, x64, Вы писали:

x64>А не может быть такого, что для распознавания вашего сертификата требуется обновление корневых сертификатов CAs (или как там их)? Может, он свою систему лет 10 не обновлял уже, вы на чистых свежеустановленных системах проверяли? Насчёт политик, открой gpedit.msc и там вроде фильтрация есть по ключевым словам, попробуй набрать что-то типа "Authenticode", "сертификат" или "подпись".


Не думаю что 10 лет Win7 x64 вроде как актуальна на сегоднешний момент. Ок спасибо за наводку поиска по ключевым словам.
Re: Policy для отображения Security Windows диалога при установке драйвера.
От: Eugene Radius США  
Дата: 21.03.14 15:07
Оценка:
То, что быстрее всего пришло в голову Devices: Insigned driver installation behaviour.. Возможно, это оно?
Re: Policy для отображения Security Windows диалога при установке драйвера.
От: okman Беларусь https://searchinform.ru/
Дата: 23.03.14 07:31
Оценка: 30 (1) +1
Здравствуйте, _f_b_i_, Вы писали:

___>Нашелся один клиент у которого во время установки (подписанного сертификатом) нашего драйвера в x64 системе не выскакивает окошко доверяет ли пользователь нам как вендору для установки девайса.

___>Как результат UpdateDriverForPlugAndPlayDevices завершается с кодом ошибки 0xe0000242: The publisher of an Authenticode(tm) signed
___>catalog has not yet been established as trusted.

___>Кто знает какая установка политик безопасности отвечает в системе за уведомление пользователя о необходимости принять решение по установке драйвера?


Насколько я знаю, такой настройки больше нет. Подробности здесь:

Digital Signatures and PnP Device Installation (Windows Vista and Later)
http://msdn.microsoft.com/en-us/library/windows/hardware/ff544703%28v=vs.85%29.aspx

Если вкратце, то на Windows Vista и выше система всегда предупреждает пользователя об
установке драйвера устройства. Исключение делается только для пакетов с WHQL-подписью,
либо если сертификат подписи находится в "Trusted Publishers".

В gpedit.msc есть политика под названием "цифровая подпись драйверов устройств"
(Конфигурация пользователя -> Административные шаблоны -> Система -> Установка драйвера),
но она действует только на Windows 2000, Windows XP и Windows Server 2003.

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

Кстати, я на проблемах с UpdateDriverForPlugAndPlayDevices, связанных с цифровыми
подписями, чаще всего наблюдал коды 0xe0000243 и 0xe0000247, а 0xe0000242 видел лишь в
одном случае — когда функция вызывалась с флагом INSTALLFLAG_NONINTERACTIVE.

___>Можно конечно объеснить пользователю как ручками добавить сертификат в список доверенных, но хотелось бы узнать есть ли более простой способ?


Я бы попробовал получить с машины клиента список хранилищ и сертификатов, которые в
этих хранилищах находятся. Возможно, проблема в том, что какой-то сертификат подписи
драйвера находится не на своем месте (например, в "Untrusted Publishers").
Re[2]: Policy для отображения Security Windows диалога при установке драйвера.
От: boris_ Германия  
Дата: 28.11.14 09:10
Оценка:
Здравствуйте, okman, Вы писали:

O>Если вкратце, то на Windows Vista и выше система всегда предупреждает пользователя об

O>установке драйвера устройства. Исключение делается только для пакетов с WHQL-подписью,
O>либо если сертификат подписи находится в "Trusted Publishers".

До сих пор подписывал драйвера, проходя WHQL/HCK ... Сейчас возникла необходимость ставить новый драйвер на 2-3 компа (не тестовых, переключение BCDEdit-ом исключено) в "своей" фирме, но код драйвера прийдется несколько раз менять. Подписал фирменным сертификатом (тем же что и WHQL submissions обычно), затолкал серт руками в "Trusted Publishers". "Включаем — не работает"(с). При инсталляции распознает, что драйвер подписан "своей" фирмой и рекомендует обратиться в нашу же фирму за подписанной версией. Попутно спрашивает можно ли доверять фирме всегда. В certmgr.msc сертификат виден без проблем. Куда рыть?
Спасибо.
Re[3]: Policy для отображения Security Windows диалога при у
От: okman Беларусь https://searchinform.ru/
Дата: 28.11.14 09:45
Оценка:
Здравствуйте, boris_, Вы писали:

_>Подписал фирменным сертификатом (тем же что и WHQL submissions обычно), затолкал серт руками в "Trusted Publishers". "Включаем — не работает"(с). При инсталляции распознает, что драйвер подписан "своей" фирмой и рекомендует обратиться в нашу же фирму за подписанной версией. Попутно спрашивает можно ли доверять фирме всегда. В certmgr.msc сертификат виден без проблем. Куда рыть?


Вы какой сертификат в хранилище ставили ?
Если что, нужно end user ставить, т.е. тот самый, которым подписывали, не корневой или промежуточный.
И само хранилище называется "TrustedPublisher".
Отредактировано 28.11.2014 9:48 okman . Предыдущая версия .
Re[4]: Policy для отображения Security Windows диалога при у
От: boris_ Германия  
Дата: 28.11.14 09:54
Оценка:
Здравствуйте, okman, Вы писали:

O>Вы какой сертификат в хранилище ставили ?

O>Если что, нужно end user ставить, т.е. тот самый, которым подписывали, не корневой или промежуточный.
O>И само хранилище называется "TrustedPublisher".

Я воткнул именно тот, которым подисывал ( pfx-file).
Windы подтянули туда же еще два — корневой и промежуточный от Verisign-a
Re[5]: Policy для отображения Security Windows диалога при у
От: okman Беларусь https://searchinform.ru/
Дата: 28.11.14 11:07
Оценка:
Здравствуйте, boris_, Вы писали:

_>Я воткнул именно тот, которым подисывал ( pfx-file).

_>Windы подтянули туда же еще два — корневой и промежуточный от Verisign-a

А хранилище какое ? Для пользователя (Current User) или системное (Local Computer) ?
Я ставил (программно) в системное, драйвер дисплея, при установке никаких вопросов не было,
проверено на Vista-7, 32- и 64- битных.
Re[6]: Policy для отображения Security Windows диалога при у
От: boris_ Германия  
Дата: 28.11.14 11:57
Оценка:
Здравствуйте, okman, Вы писали:

O>А хранилище какое ? Для пользователя (Current User) или системное (Local Computer) ?


O>Я ставил (программно) в системное, драйвер дисплея, при установке никаких вопросов не было,

O>проверено на Vista-7, 32- и 64- битных.
Ясное дело в Current User , сейчас доставил и в Local Computer. Теперь дурных вопросов не задает, но все равно драйвер метит как неподписанный и не грузит.
Re[7]: Policy для отображения Security Windows диалога при у
От: okman Беларусь https://searchinform.ru/
Дата: 28.11.14 13:40
Оценка: 1 (1)
Здравствуйте, boris_, Вы писали:

O>>А хранилище какое ? Для пользователя (Current User) или системное (Local Computer) ?

_>Ясное дело в Current User , сейчас доставил и в Local Computer. Теперь дурных вопросов не задает, ...

Ок, с этим разобрались.

_> ... но все равно драйвер метит как неподписанный...


Насколько я знаю, в диспетчере устройств любой драйвер, если у него нет WHQL-подписи,
отмечается как неподписанный.

_> ... и не грузит.


Verifying the Signature of a Release-Signed Driver File
http://msdn.microsoft.com/en-us/library/windows/hardware/ff553936%28v=vs.85%29.aspx

signtool.exe verify с ключом /kp проходит проверку на подписанном файле ?
Re[8]: Policy для отображения Security Windows диалога при у
От: boris_ Германия  
Дата: 01.12.14 09:23
Оценка:
Здравствуйте, okman, Вы писали:

O>Verifying the Signature of a Release-Signed Driver File

O>http://msdn.microsoft.com/en-us/library/windows/hardware/ff553936%28v=vs.85%29.aspx

O>signtool.exe verify с ключом /kp проходит проверку на подписанном файле ?


Здравствуйте, okman, Вы писали:

O>Verifying the Signature of a Release-Signed Driver File

O>http://msdn.microsoft.com/en-us/library/windows/hardware/ff553936(v=vs.85).aspx

O>signtool.exe verify с ключом /kp проходит проверку на подписанном файле ?


Подписал драйвер и dll:
SignTool sign /v /f verisign_class3_authenticode.pfx /p PWD /t http://timestamp.verisign..../timstamp.dll B012E549.sys
SignTool sign /v /f verisign_class3_authenticode.pfx /p PWD /t http://timestamp.verisign..../timstamp.dll WdfCoInstaller01009.dll

Подписал cat:
signtool sign /f verisign_class3_authenticode.pfx /p PWD /t http://timestamp.verisign.com/scripts/timstamp.dll b012e549_ntamd64.cat

Signtool отработал без проблем.

Проверяю:
SignTool verify /v /kp B012E549.sys
SignTool Error: Signing Cert does not chain to a Microsoft Root Cert.

SignTool verify /v /kp b012e549_ntamd64.cat
SignTool Error: Signing Cert does not chain to a Microsoft Root Cert.


SignTool verify /v /pa pcsc_b012e549_ntamd64.cat
Number of files successfully Verified: 1
Number of warnings: 0
Number of errors: 0

Похоже моего сертификата недостаточно. Нужен cross-сертификат .
Re[8]: Policy для отображения Security Windows диалога при у
От: boris_ Германия  
Дата: 01.12.14 10:02
Оценка:
Здравствуйте, okman,

Все, разгреб, спасибо за советы.
Если кому ( verisign-овцам) понадобится:
https://knowledge.verisign.com/support/code-signing-support/index?page=content&actp=CROSSLINK&id=SO5820#
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.