Re: Windows 10 signature enforcement - что хотят?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 28.03.18 07:25
Оценка: 16 (2)
Здравствуйте, NiJazz, Вы писали:

NJ>Далее мы отправили этот сертификат Microsoft, подписав нашим ключом их файл — это новое требование для подписи драйверов.


Убедитесь, что Вы выполнили все необходимые для подписания драйвера шаги. Отправка в MS подписанного Вашим сертификатом их файла — это однократная процедура, необходимая для регистрации Developer's Account. После этого необходимо отправлять для подписи каждую сборку драйвера. И заточена эта процедура под PnP-драйверы — то есть, в отправляемом CAB-пакете должен быть INF-файл, для которого MS сгенерирует и подпишет CAT-файл. Также они подпишут и SYS-файлы.

Фактически Ваш драйвер не обязан быть PnP, но синтаксически правильный INF-файл сделать придется (использовать его потом не обязательно). О том, как сделать такой legacy INF-файл, написано где-то в статьях на сайте MS.

NJ>Если загрузить Windows 10 с выключенным driver signature enforcement, то работает. Но только так. Иначе еще появляется сообщение, что установлен неподписанный драйвер.


Если при запрете проверки подписи все работает нормально — значит, Inno Setup кладет драйвер в правильный каталог (но убедитесь, что все работает и в 64-разрядных системах). Ну и проверять загрузку драйвера действительно лучше непосредственно — через sc query или отладочные сообщения от драйвера, поскольку запрос IRP_CREATE может не доходить и до работающего драйвера, а Вы будете искать проблему не там.
Windows 10 signature enforcement - что хотят?
От: NiJazz Австралия  
Дата: 27.03.18 23:29
Оценка:
Всем привет!

У нас есть некий модуль ядра, который никак не связан с железом. Подписан с помощью EV-сертификата, полученного совсем недавно вместе с USB-ключом. Далее мы отправили этот сертификат Microsoft, подписав нашим ключом их файл — это новое требование для подписи драйверов.

Установка драйвера простая — Inno setup кладёт файл .sys в \Windows\Syetem32\driver и регистрирует с помощью sc create.
И все равно ошиибка в Windows 10 после вызова CreateFile — [2] The system cannot find the file specified.

Если загрузить Windows 10 с выключенным driver signature enforcement, то работает. Но только так. Иначе еще появляется сообщение, что установлен неподписанный драйвер.

Что ещё они могут хотеть, чтобы заработало?

Спасибо.
windows10 driver signature enforcement ev certificate
Re: Windows 10 signature enforcement - что хотят?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 27.03.18 23:44
Оценка:
Здравствуйте, NiJazz, Вы писали:

NJ>Установка драйвера простая — Inno setup кладёт файл .sys в \Windows\Syetem32\driver и регистрирует с помощью sc create.

NJ>И все равно ошиибка в Windows 10 после вызова CreateFile — [2] The system cannot find the file specified.

NJ>Если загрузить Windows 10 с выключенным driver signature enforcement, то работает. Но только так. Иначе еще появляется сообщение, что установлен неподписанный драйвер.


NJ>Что ещё они могут хотеть, чтобы заработало?


Давненько я туда не заглядывал, но разве они не подписанный CAT генерят?

Также не совсем понятно, при чём тут CreateFile. Имеется в виду, открытие виртуального девайса, созданного драйвером, или что? Для начала неплохо бы глянуть sc query на этот драйвер, каков его статус. Посмотреть в Event Viewer, что там говорится на эту тему.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re: Windows 10 signature enforcement - что хотят?
От: Черный Властелин Австралия https://www.softperfect.com
Дата: 28.03.18 04:36
Оценка:
Здравствуйте, NiJazz, Вы писали:
NJ>Установка драйвера простая — Inno setup кладёт файл .sys в \Windows\Syetem32\driver и регистрирует с помощью sc create.
NJ>И все равно ошиибка в Windows 10 после вызова CreateFile — [2] The system cannot find the file specified.

Это не про подпись. Наиболее вероятно Inno Setup будучи 32-битной прогой кладет драйвер в С:\Windows\SysWOW64\drivers, где винда его найти не можети ибо ищет не там.

Нужно включить 64-битный режим в инно, подробнее тут.
Re: Windows 10 signature enforcement - что хотят?
От: Черный Властелин Австралия https://www.softperfect.com
Дата: 28.03.18 04:44
Оценка:
Здравствуйте, NiJazz, Вы писали:

NJ>Если загрузить Windows 10 с выключенным driver signature enforcement, то работает. Но только так. Иначе еще появляется сообщение, что установлен неподписанный драйвер.

NJ>Что ещё они могут хотеть, чтобы заработало?

Еще если Secure Boot включен, то даже EV-подписанный драйвер не запустится. Непонятно получили вы драйвер подписанный MS или нет.

Процесс называется attestation sign и описан тут.
Re[2]: Windows 10 signature enforcement - что хотят?
От: mike_rs Россия  
Дата: 28.03.18 07:18
Оценка:
Здравствуйте, Черный Властелин, Вы писали:

ЧВ>Процесс называется attestation sign и описан тут.


если что, то attestation подписи недостаточно для работы Virtualization-based Security, требуется WHQL подпись
Re[2]: Windows 10 signature enforcement - что хотят?
От: NiJazz Австралия  
Дата: 28.03.18 11:05
Оценка:
Здравствуйте, Черный Властелин, Вы писали:

ЧВ>Нужно включить 64-битный режим в инно, подробнее тут.


С этим порядок, кладёт куда нужно, всё включено.
Re[2]: Windows 10 signature enforcement - что хотят?
От: NiJazz Австралия  
Дата: 28.03.18 11:11
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Убедитесь, что Вы выполнили все необходимые для подписания драйвера шаги. Отправка в MS подписанного Вашим сертификатом их файла — это однократная процедура, необходимая для регистрации Developer's Account. После этого необходимо отправлять для подписи каждую сборку драйвера. И заточена эта процедура под PnP-драйверы — то есть, в отправляемом CAB-пакете должен быть INF-файл, для которого MS сгенерирует и подпишет CAT-файл. Также они подпишут и SYS-файлы.


Честно говоря, я (не без облегчения) делегировал эту регистрацию манагеру, но я тоже понял это как отправку им каждой сборки на дополнительную подпись, но он уверил, что не надо. Значит, цирк продолжается


ЕМ>Фактически Ваш драйвер не обязан быть PnP, но синтаксически правильный INF-файл сделать придется (использовать его потом не обязательно). О том, как сделать такой legacy INF-файл, написано где-то в статьях на сайте MS.


А не хватит того минимального INF-файла, взятого из примеров WDK?
При регистрации через Inno setup он не используется, но используется вручную при тестировании.


ЕМ>Если при запрете проверки подписи все работает нормально — значит, Inno Setup кладет драйвер в правильный каталог (но убедитесь, что все работает и в 64-разрядных системах). Ну и проверять загрузку драйвера действительно лучше непосредственно — через sc query или отладочные сообщения от драйвера, поскольку запрос IRP_CREATE может не доходить и до работающего драйвера, а Вы будете искать проблему не там.


С папками точно все ОК, проблема возникла лишь в Windows 10, до этого и amd64 и x86 работали отлично.

Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.