|
Ушел с форума
|
||||||||||||||||||||||||||||||||||||
Инструкция: подписывание драйверов для Windows 10 (EV)12.08.2016, 21:32. Показов 51518. Ответов 47
Эта статья - быстрый онлайн-помощник для тех, кто переходит на новое
подписывание драйверов в Windows 10 (EV, WHDC-портал). Здесь я постараюсь дать основные рекомендации, чтобы помочь избежать глупых ошибок и, не теряя времени, скорее адаптировать свои проекты под новые требования. Для того, чтобы начать подписывать драйверы по-новому, вам потребуется: * EV-сертификат, приобретенный у Symantec, DigiCert, GlobalSign, WoSign или Entrust. В тот момент, когда пишутся эти строки, поддерживаются только сертификаты, приобретенные в перечисленных выше организациях. В будущем список, вероятно, будет дополняться. По тексту ниже подразумевается, что сертификат уже установлен на вашем компьютере. * Аккаунт на Microsoft (LiveID). Регистрация там бесплатная и занимает несколько минут. * Утилита signtool с поддержкой SHA256. Утилиту лучше взять из последних версий WDK (8 и выше), так как старые версии не поддерживают SHA256 и некоторые другие возможности, которые вам потребуются. * Несколько часов свободного времени. Первое, что вам нужно сделать - зарегистрировать свою компанию на портале WHDC. Идем сюда: Microsoft Hardware Dev Center https://developer.microsoft.co... s/hardware жмем 'Dashboard' и логинимся в свой аккаунт Microsoft. Далее вам будет предложено скачать файл winqual.exe, подписать его своим сертификатом и загрузить обратно. Так портал определяет валидность сертификата, а также сможет сопоставить цифровую подпись с вашей компанией, если это будет необходимо. Команда подписи для signtool.exe затруднений вызывать не должна:
они указывают, что и для цифровой подписи, и для timestamp-сервера следует использовать SHA256, а не SHA1. EV-сертификаты используют только SHA2. Также обратите внимание, что здесь и далее больше не будут использоваться никакие кросс-сертификаты (ключ /ac), так как для 'attestation signing' (подписывание драйверов через веб-портал) это не требуется. Точно такой же командой вы будете подписывать submission (архив с файлами для подписи). Подписав и загрузив winqual.exe, вы попадете на страницу, где вам предложат указать сведения о компании - название, юридический адрес, почтовый индекс, телефон, e-mail... Судя по всему, эта информация не проверяется и нужна только "для галочки". Но указывать откровенно "липовые" данные, разумеется, не стоит. Вот и все, теперь вы успешно зарегистрированы на веб-портале WHDC. Осталось немного - дать нужные разрешения (permissions), а также подписать несколько соглашений, которые предлагает вам Microsoft (по поводу Anti-Malware, DRM и остальные в таком же духе, всего штук 10). Я не буду подробно описывать нужные шаги, т.к. они достаточно очевидны. После этого вам необходимо перелогиниться на веб-портале (выйти и зайти снова), чтобы изменения вступили в силу. Подписывание драйвера. Сначала вам нужно создать cab-архив с файлами для подписи внутри. Если пакет драйверов только один, cab-файл должен иметь такую структуру:
Так что если вы никогда не делали INF-файлов, придется этому научиться. Для legacy-драйверов можно использовать следующую заглушку, поставив только правильные названия: Кликните здесь для просмотра всего текста
Я сразу советую проверять, валиден ли ваш INF-файл, используя утилиту inf2cat из WDK. Например:
задействовать штатную утилиту Windows под названием makecab:
Я использую примерно такой шаблон:
он все равно будет проигнорирован и портал при подписи создаст новый. Важный момент: все пакеты драйверов в архиве должны быть под какую-то одну архитектуру - или x64, или x86. На MSDN пишут, что Driver Package может быть под обе архитектуры, но как правильно их упаковать в cab-архив - я так и не понял. Попытки добавить еще один уровень в дереве папок внутри архива (32/64, x86/x64, i386/amd64) успехом не увенчались. Видимо, самый простой путь - делать две submission, одну чисто под x64, вторую чисто под x86. Когда cab-архив будет готов, вам нужно подписать его своим сертификатом. Далее на веб-портале идем в раздел 'File signing services' и выбираем пункт 'Create driver signing submission'. После этого все очень просто: вы указываете название своей submission (произвольное, это нужно только для информативных целей), является ли ваш драйвер универсальным (см. концепцию 'Universal Driver' в MSDN), а также платформы, под которые собран драйвер, их в настоящий момент четыре: Microsoft Windows 10 AU Client family, x86 Microsoft Windows 10 AU Client family, x64 Microsoft Windows 10 Client family, x86 Microsoft Windows 10 Client family, x64 C x64/x86 все понятно, а вот разницу между Client и AU Client я не нашел - подпись в конечном итоге получается одинаковая. После этого вы загружаете свой cab-архив и жмете 'Submit'. Все. Обработка submission (процесс называется review) занимает некоторое время, у меня было где-то около 15 минут, иногда может затянуться, как пишут, на часы или даже сутки. Но обычно слишком долгий процесс обработки submission - признак того, что что-то пошло не так и процесс будет завершен с ошибкой. По завершении вам придет письмо на почту и архив с подписанными файлами можно будет скачать там же, на веб-портале. Кстати, можно запостить сразу несколько submission - они обрабатываются параллельно и в некоторых случаях можно сэкономить немного времени. В сведениях о цифровой подписи файлов, которые вам вернет портал, вы с удивлением (а кто-то, возможно, и с радостью) обнаружите, что вместо 'OOO Vasya Pupkin' будет вписано безликое и ужасное 'Microsoft Windows Hardware Compatibility Publisher'. Теперь драйвер можно ставить и запускать на Windows 10 - 1607 и никакие Secure Boot, Device Guard и т.п. не помеха. ---------------------------------------------------------------------------------- Теперь вопросы чисто практического плана. Q: Как быть с предыдущими версиями Windows (Vista, Windows 7, Windows 8, Windows 8.1)? A: К сожалению, здесь без вариантов: либо вам придется купить еще один сертификат SHA1 и использовать его, либо попробуйте пройти HLK-тесты через веб-портал и тогда получите подпись, которую понимают все указанные выше версии Windows. Прохождение HLK-тестов - достаточно большой и серьезный "квест", затрагивать эту тему здесь я не буду. Q: Как быть с Windows Server 2016 (vNext)? Его ведь нету в списке при отправке submission на веб-портале... A: Для Windows Server 2016 прохождение HLK-тестов для драйвера - единственный легальный способ поддержки, другие типы цифровых подписей система принимать не будет. Так что ждите через некоторое время очередную статью от меня про HLK. Q: Как обстоят дела с двойными сигнатурами? A: Портал добавляет свою подпись, не затирая старую. Поэтому можно, например, подписать .sys-файл сначала стандартным сертификатом с SHA1 старым способом с кросс-сертификатом (cross-signing), а затем отправить его на веб-портал, где ему будет добавлена вторая подпись SHA256 для Windows 10 (attestation signing). Такой драйвер сможет запускаться на любых версиях Windows. Однако в случае с cat-файлами это не сработает, потому что, как уже писалось выше, портал генерирует свой cat-файл, игнорируя тот, что лежит внутри cab-архива. Поэтому, если ваш драйвер ставится через INF-файл и вы хотите поддерживать максимально возможный диапазон версий Windows, придется иметь несколько пакетов драйвера, один для систем до Windows 10, второй для Windows 10 и выше. Q: Что делать с модулями, которые собираются с ключом /INTEGRITYCHECK и, согласно MSDN, должны подписываться с опцией /ph (generate page hashes)? Например, драйвер, использующий Object Callbacks (ObRegisterCallbacks)? A: Ничего не нужно. Система подписывания остается такой же, как и для остальных драйверов Windows 10. Q: EV-сертификат поставляется на USB-токене, это секьюрно, но неудобно. У нас разработчики географически удалены друг от друга, а подписывать, получается, может только один? A: К сожалению, здесь действительно есть ряд неудобств. Например, токен SafeNet не работает нормально в RDP-сессии и время от времени начинает требовать ввод пароля (PIN). Для решения этой проблемы можно настроить параметры, как написано здесь: Automate Extended Validation (EV) code signing http://stackoverflow.com/quest... de-signing А также воспользоваться приведенным кодом и утилитой RemoteSignTool (обертка над signtool.exe, работающая через интернет). В настоящее время ведутся дебаты о том, чтобы оставить EV только для регистрации на веб-портале, а для подписи submission использовать "обычные" сертификаты (т.е. без USB-токенов и тому подобного): EV Cert to be Requires for EVERY sysdev submission... http://www.osronline.com/showt... ink=278314
10
|
||||||||||||||||||||||||||||||||||||
| 12.08.2016, 21:32 | |
|
Ответы с готовыми решениями:
47
И еще про подписывание драйверов на Windows 10 Подписывание драйверов на Windows 10 Anniversary Update (1607) Подписывание драйверов из Visual Studio 2013 (как настроить?) |
|
2 / 2 / 0
Регистрация: 23.09.2015
Сообщений: 61
|
|||||||||||
| 24.08.2016, 00:28 | |||||||||||
|
Убежденный спасибо но у меня есть два вопроса
первый
SignTool Error: No certificates were found that met all the given criteria.
0
|
|||||||||||
|
Ушел с форума
|
|||
| 24.08.2016, 00:35 [ТС] | |||
|
виндовый диалог с предложением установить сертификат в хранилище. По умолчанию сертификат ставится в "Личные". После этого команда signtool с опцией /n "Имя сертификата" должна работать. При условии, что мы залогинены под тем же пользователем, в хранилище которого сертификат был установлен.
0
|
|||
|
2 / 2 / 0
Регистрация: 23.09.2015
Сообщений: 61
|
|
| 24.08.2016, 00:44 | |
|
хорошо, например ваш файл называется OS201603158933.pfx вы пишите /n "OS201603158933" или /n "OS201603158933.pfx"?
0
|
|
|
Ушел с форума
|
|
| 24.08.2016, 08:45 [ТС] | |
|
Нет-нет, в опции /n надо указывать название сертификата, а не файла.
То есть, имя, которое видно в свойствах цифровой подписи и на которое выдан сертификат.
2
|
|
|
Ушел с форума
|
|||
| 10.10.2016, 21:08 [ТС] | |||
|
EV-сертификат по-прежнему требуется для регистрации аккаунта на портале WHDC, но подписывать submission можно любым стандартным сертификатом (т.е. не EV). Первоисточник: Update to EV certificate requirement per submission https://blogs.msdn.microsoft.c... ubmission/
соответствующий сертификат в свой аккаунт на портале (через подпись winqual.exe, как и раньше). После этого submission, подписанная стандартным сертификатом с SHA-1, успешно принимается. CAB-файл можно подписывать также, как и обычные файлы exe, dll, ocx и т.п., то есть, включать кросс-сертификат или какие-то другие специальные опции signtool.exe не требуется.
1
|
|||
|
Ушел с форума
|
|
| 15.10.2016, 22:24 [ТС] | |
|
На Channel9 есть видео, где ребята из MS рассказывают про новые правила подписывания
драйверов в Windows 10 и отвечают на вопросы (язык - английский, но все достаточно понятно): Driver Certification on Windows Client and Server https://channel9.msdn.com/Even... and-Server Первая часть (примерно 20 минут) посвящена Windows 10, дальше про Windows Server 2016.
0
|
|
|
2 / 2 / 0
Регистрация: 23.09.2015
Сообщений: 61
|
|
| 22.12.2016, 21:45 | |
|
Убежденный сегодня приобрёл себе тоже EV от DigiCert собственно есть 2 вопроса
1) допустим у меня есть такой же Driver для Windows 10 под цифровой подписью SHA1 я скачал и установил на виртуальную машину например "Windows 10, v.1607 with Update [14393.576] AIO" но не могу понять почему на этой сборке нормально запускается дров SHA1 мой старый и SHA 256 EV что мне подписал Microsoft... 2) вопрос по поводу нескольких подписях в одном файле я где то читал вы писали что можно допустим подпись Microsoft EV SHA256 и Мою SHA1 подпись в одном драйвере! если можно какое то краткое описание или гайд как это сделать!
0
|
|
|
Ушел с форума
|
|||
| 22.12.2016, 21:55 [ТС] | |||
|
б) Политика "только EV-сертификаты" активируется, если включен Secure Boot (проверить можно на последних версиях Hyper-V, если на реальном железе эта фича недоступна). Только я не советую так делать. У Microsoft было несколько багов, когда драйверы с двойными сигнатурами либо не грузились, либо приводили к "синим экранам". Лучше делать две копии драйвера, одну с подписью SHA1, другую с EV-SHA256, и в зависимости от версии Windows ставить либо первую, либо вторую.
1
|
|||
|
2 / 2 / 0
Регистрация: 23.09.2015
Сообщений: 61
|
|
| 25.12.2016, 15:25 | |
|
Убежденный еще такой вопрос если у меня драйвер подписан как вы описали выше он будет запускаться абсолютно на всех Windows 10 Даже без обновления 1607?
0
|
|
|
Ушел с форума
|
||
| 25.12.2016, 15:27 [ТС] | ||
|
Attestation-Signing через портал? Или Cross-Signing с двумя сертификатами SHA1 + SHA2-EV?
0
|
||
|
2 / 2 / 0
Регистрация: 23.09.2015
Сообщений: 61
|
|
| 25.12.2016, 23:09 | |
|
через портал SHA2-EV
0
|
|
|
Ушел с форума
|
|
| 26.12.2016, 00:53 [ТС] | |
|
Будет запускаться на всех Windows 10, включая preview-версии.
Но есть нюансы: администратор может ограничить загрузку драйверов политиками (Device Guard + HVCI в режиме 'enforce') - и тогда все будет зависеть от того, как настроены эти политики...
0
|
|
|
2 / 2 / 0
Регистрация: 23.09.2015
Сообщений: 61
|
|
| 16.01.2017, 00:49 | |
|
Убежденный чисто научный вопрос : в чём разница между Attestation-Signing через портал и Cross-Signing с двумя сертификатами SHA1 + SHA2-EV?
0
|
|
|
Ушел с форума
|
|
| 16.01.2017, 08:19 [ТС] | |
|
Разница в сертификатах цифровой подписи. Когда ты подписываешь методом cross-signing,
т.е. локально, с помощью signtool.exe, у тебя в выходном файле появляется сигнатура(ы) типа 'Ivan Ivanov Ltd'. А при подписывании через портал там другая цифровая подпись - 'Microsoft Windows Hardware Compatibility Publisher'. Получаются две совершенно разные цепочки сертификатов.
1
|
|
|
2 / 2 / 0
Регистрация: 23.09.2015
Сообщений: 61
|
|
| 16.01.2017, 19:28 | |
|
спасибо, да именно так у меня Microsoft Windows Hardware Compatibility Publisher.
0
|
|
|
Ушел с форума
|
||
| 24.01.2017, 15:32 [ТС] | ||
|
Свежие новости по теме подписывания драйверов (от 17.01.2017):
больше не найдете. Сам интерфейс значительно упростился и стал более дружелюбным. Как и раньше, вход через 'Windows Hardware Dev Center' -> 'Dashboard': https://developer.microsoft.co... s/hardware Сразу после входа выбирайте 'Sign in to the new Hardware Dev Center dashboard': Дальнейшие действия почти ничем не отличаются от того, что было раньше, поэтому подробных инструкций не привожу, можно разобраться самостоятельно за несколько минут.
2
|
||
|
1 / 1 / 0
Регистрация: 14.07.2016
Сообщений: 34
|
|
| 14.02.2017, 19:17 | |
|
Наткнулся на способ как EV сертификатом подписать драйвера под Win7/Win8.
https://support.globalsign.com... ws-7-and-8 Проверьте пожалуйста этот способ если у кого есть EV.
0
|
|
|
Ушел с форума
|
|
| 14.02.2017, 19:32 [ТС] | |
|
Способ вполне рабочий, если говорить о системах, которые поддерживают SHA256 в
ядре, а это Windows 7 (с установленным соответствующим обновлением) и выше. Но мы, например, EV таким способом не используем, т.к. на Windows 10 требуется подписывание через портал, а для предыдущих версий есть сертификат SHA-1.
0
|
|
|
Ушел с форума
|
|
| 03.04.2017, 18:22 [ТС] | |
|
Небольшое, но важное дополнение по данной теме.
В настоящее время Sysdev портал разделен на две части - старую и новую. Хоть это и не совсем очевидно, новый Sysdev управляется через Windows Azure. Например, если вы хотите добавить пользователя и дать ему права на подписывание драйверов и т.п., то сначала это надо сделать это в панели управления Azure: Microsoft Azure: платформа облачных вычислений https://azure.microsoft.com/ru-ru/ См. "Профиль / Портал / Azure Active Directory" и далее на вкладке "Users and Groups" можно управлять пользователями. Имейте в виду также, что выполнять данную операцию может только Global Administrator вашего аккаунта в Azure - а он всегда один. В противном случае у вас просто не будет доступа для данной операции, ни в панели Azure, ни в Sysdev. После добавления нового пользователя в Azure ему в Sysdev можно будет назначить все необходимые разрешения. В моем случае все было немного запутаннее: аккаунт глобального администратора Azure был создан автоматически при переходе со старого Sysdev на новый и у меня даже не было от него пароля. Пришлось сначала восстанавливать доступ, используя запасной e-mail... Надеюсь, приведенная информация будет для кого-нибудь полезной.
0
|
|
| 03.04.2017, 18:22 | |
|
Помогаю со студенческими работами здесь
20
WDK Windows. IDE для драйверов Поиск драйверов для Windows XP х32 А сайте HP нет драйверов для windows 7 Настройка драйверов на звук для Windows 10 64bit Настройка VS под windows 7 для написания драйверов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|