|
Ушел с форума
|
||||||||||||||||||||||||||||||||||||
Инструкция: подписывание драйверов для Windows 10 (EV)12.08.2016, 21:32. Показов 53440. Ответов 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 для написания драйверов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|