|
Ушел с форума
|
||||||||||||||||||||||||||||||||||||
Инструкция: подписывание драйверов для Windows 10 (EV)12.08.2016, 21:32. Показов 53802. Ответов 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 (как настроить?) |
|
4 / 3 / 1
Регистрация: 15.09.2015
Сообщений: 72
|
||
| 16.05.2017, 16:39 | ||
|
При этом, при выходе из аккаунта, что создал, и последующем входе у меня почему то видны два аккаунта, один как рабочий с большой буквы и второй персональный с маленькой, правда во второй почему то не войти, пароль не подходит... блин, уже целый день убил на это. Вообщем не могли бы Вы поподробнее расписать всю эту регистрацию, а то там все как то не очевидно, буду очень признателен.
0
|
||
|
Ушел с форума
|
||
| 17.05.2017, 11:33 [ТС] | ||
|
Для этого нужен лишь Windows Live Id. Регистрация очень простая, все описано в первых сообщениях данной темы. Потом MS анонсировали новый портал и перенесли подписывание драйверов туда. Да, для использования нового портала нужна регистрация в Azure. Деталей я уже не помню, но никаких кредиток у меня не спрашивали, я заполнял только основные поля, прямо там, на портале WHDC. Теперь когда я захожу в 'Dashboard', мне предлагают выбор: либо старый Sysdev, либо новый - "Sign in to the new Hardware Dev Center dashboard". Я захожу в новый портал и у меня сразу открывается панель управления, куда сразу можно загружать свои .cab-архивы: А на Windows Azure я иду только в том случае, если нужно добавить нового пользователя и дать ему какие-то права.
0
|
||
|
Ушел с форума
|
|
| 17.05.2017, 12:15 [ТС] | |
|
0
|
|
|
4 / 3 / 1
Регистрация: 15.09.2015
Сообщений: 72
|
|||||
| 17.05.2017, 15:30 | |||||
|
"Sign in to the new Hardware Dev Center dashboard" то предлагает по новой зарегистрироваться и по новой файл скачать и прописать, хотя я нормально вхожу под запись, что зарегистрировал в первый раз, при этом если попытаться это сделать по новой, пишет -
А вот если под этой же записью войти уже чисто в Azure то там то он и предлагает подтвердить личность через кредитку и телефон, телефон то фиг с ним, а вот с кредиткой сложнее... Куда копать непонятно.
0
|
|||||
|
Ушел с форума
|
|
| 17.05.2017, 16:58 [ТС] | |
|
Попробуй написать им в тех.поддержку.
Я в Гугле встречал жалобы, что регистрация на портале сломана, может это как раз тот случай.
0
|
|
|
4 / 3 / 1
Регистрация: 15.09.2015
Сообщений: 72
|
||
| 17.05.2017, 17:20 | ||
|
0
|
||
|
Ушел с форума
|
|
| 17.05.2017, 17:28 [ТС] | |
|
Там и раньше был "цирк": для регистрации нужно было подписать своим EV-сертификатом файл XML.
А как подписывать XML - никто не сказал, дали только ссылку на чей-то блог. Ну и разумеется, рецепт из блога не работал. Я пару месяцев ждал, пока это пофиксят и можно будет порталом пользоваться.
0
|
|
|
0 / 0 / 0
Регистрация: 07.05.2016
Сообщений: 12
|
||
| 29.05.2017, 07:31 | ||
|
Я в прошлом году получил у DigiCert вот такой обычный сертификат (для EV не получилось выполнить требований валидации): Version: V3 Signature algorithm: sha256rsa Signature hash algorithm: sha256 Issuer: DigiCert SHA2 High Assurance Code Signing CA Thumbprint algorithm: sha1 То есть, у меня сертификат с SHA256? Если им подписать драйвер с дайджестом хоть SHA1, хоть SHA256, то Win7 SP1 без KB3033929 (там после SP1 было вручную поставлено всего три обновления) ее успешно проверяет и признает корректной. А вот древняя XP SP3, которая никогда не обновлялась, уже не может - но, как я понимаю, только по той причине, что у нее нет соответствующего корневого сертификата "DigiCert High Assurance EV Root CA". Сейчас DigiCert вроде бы научились добывать информацию из ЕГРИП, и согласны выдать мне EV-сертификат. Но не пойму, можно ли отказаться от текущего обычного сертификата, чтобы впредь обходиться только EV. Текущий сертификат меня полностью устраивает во всех отношениях, кроме Win10+Secure Boot. Есть еще вариант купить EV-сертификат на год, зарегистрироваться с его помощью на SysDev, а дальше продолжать пользоваться текущим, который будет действовать еще два года. Но не закроет ли MS доступ на SysDev после истечения EV-сертификата через год?
0
|
||
|
Ушел с форума
|
|||||
| 29.05.2017, 08:45 [ТС] | |||||
|
Там только в свойствах прописаны дополнительные OID-ы, в этом вся разница. Для TLS/SSL-сертификатов именно по этим OID-ам браузеры узнают, что используется именно EV, и показывают зеленый замочек или полоску в адресной строке. Ну и еще EV поставляется только на USB-токене, это без вариантов. А это вносит ряд сложностей (например, автоматизация подписывания). Потому что апдейта для 64-битных Vista/Server2008, который бы включал поддержку SHA2 в ядре, нету. А без этого драйвер не будет загружен. У нас в компании, например, используются два сертификата: один SHA1 для XP-Win8.1 включительно, второй EV для подписывания под Win10 через WHDC-портал. Клиентов на WinXP еще много, поэтому SHA1 планируется использовать еще год-два, наверное, это как минимум. Или пока MS окончательно не закроет SHA1. ведет себя непредсказуемо...
0
|
|||||
|
0 / 0 / 0
Регистрация: 07.05.2016
Сообщений: 12
|
||
| 29.05.2017, 10:59 | ||
|
0
|
||
|
Ушел с форума
|
|
| 29.05.2017, 11:16 [ТС] | |
|
Обычный (standard, SHA1) - да, в виде файла. А EV на токене.
0
|
|
|
0 / 0 / 0
Регистрация: 07.05.2016
Сообщений: 12
|
||||
| 29.05.2017, 11:47 | ||||
![]()
0
|
||||
|
Ушел с форума
|
||
| 29.05.2017, 11:56 [ТС] | ||
|
Зато до сих пор есть клиенты, у которых сервера крутятся на Windows Server 2008 (без R2).
0
|
||
|
0 / 0 / 0
Регистрация: 07.05.2016
Сообщений: 12
|
|
| 30.05.2017, 15:48 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 2
|
|
| 17.08.2017, 11:42 | |
|
Вот не проходит регистрация на Микрософте, вроде я не сильно блондинка, а ступор... Регистрация была на новом портале, организацию записала, пользователя тоже, потом предложили подписать файл, сделала и после нажатия "Далее" перекинуло на предыдущую страницу - купить сертификат и так по кругу... заходила в portal.azure все на месте, права администратора. Как вот быть...
0
|
|
|
1 / 1 / 0
Регистрация: 14.07.2016
Сообщений: 34
|
||
| 17.08.2017, 12:29 | ||
|
0
|
||
|
4 / 3 / 1
Регистрация: 15.09.2015
Сообщений: 72
|
|
| 17.08.2017, 12:37 | |
|
Soulnishka,
Я на предыдущей странице о той же проблеме писал, писал даже в поддержку Микрософта, ответа так и не получил, правда с какого то момента моя цифровая подпись от ГлобалСигна и без подписи Микрософта стала проходить на 10-ке, с тех пор пока забил на это дело, что то они там походу мудрят. Если что-то выясниться дайте знать, очень интересно.
0
|
|
|
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 2
|
|
| 17.08.2017, 13:00 | |
|
Vitaliy-, Вот я все читала, читала и не выходит... Сейчас попробовала поставить на 10-ку, все установилось в какой-то момент и без ошибок и с подписью.
0
|
|
|
0 / 0 / 0
Регистрация: 07.05.2016
Сообщений: 12
|
||||||||
| 25.08.2017, 09:21 | ||||||||
|
У меня вот такая конфигурация, прекрасно работающая везде, от 2k до последних десяток: Фрагмент INF
Портал возвращает пакет с такой диагностикой: 22.9.10: %driverfile% in [devinst.copylist] is missing from [SourceDisksFiles] section in DriverPackage1\vrtaucbl.inf; driver may not sign correctly until this is resolved. Как я понимаю, ему не нравится именно суффикс платформы, а не переменная вместо конкретного имени. Вообще же, количество телодвижений, потребных для подписывания драйвера через портал, не может породить ничего, кроме тягостного уныния.
0
|
||||||||
|
Ушел с форума
|
||||
| 25.08.2017, 10:42 [ТС] | ||||
|
Но потратив энное количество времени на попытки создать многоплатформенный .cab, я бросил эту затею... inf2cat должна проходить без ошибок, иначе портал отвергнет пакет драйверов, это знаю точно. бредово, а что будет через несколько лет? Там будет портянка из версий с их бесчисленными и безликими кодовыми названиями RS1, RS2, TH1, 1607, 1706, 1511 (всего штук 40-50)?.. А сертифицировать драйвер как (WHQL)? Арендовать залы на 50 компов и на каждый ставить свою сборку Windows со своей версией HLK и на ней пускать тесты? Так и до психушки недалеко, как мне кажется
0
|
||||
| 25.08.2017, 10:42 | |
|
WDK Windows. IDE для драйверов Поиск драйверов для Windows XP х32 А сайте HP нет драйверов для windows 7 Настройка драйверов на звук для Windows 10 64bit Настройка VS под windows 7 для написания драйверов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|