Re[2]: MS снизила требования к подписи драйверов?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 05.02.20 16:13
Оценка: :)
Здравствуйте, Pzz, Вы писали:

Pzz>Зафайли им баг репорт. Глядишь, починят.


Я им уже столько за последние годы зафайлил — пока ничего не починили.
MS снизила требования к подписи драйверов?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 04.02.20 20:27
Оценка:
Мне тут написал человек с вопросами по подписыванию драйверов, и сообщил, что у него десятка успешно грузит драйверы, подписанные только его собственным (не EV) сертификатом, если не включен Secure Boot, и если у системы есть подключение к Интернету. Я сперва не поверил, потом решил проверить, и обнаружил, что 64-разрядные 1909 и 1803 (недавно обновленная) грузят драйверы, подписанные только моим EV-сертификатом от GlobalSign, даже без интернета.

Это очень странно — для чего ж они столько лет загоняли всех в Attestation Signing? Или нынче системы с Secure Boot преобладают, и MS просто решила забить на Legacy? Никто не слышал подробностей?
driver драйвер certificate сертификат windows 10 attestation ev
Re: MS снизила требования к подписи драйверов?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 04.02.20 21:29
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Мне тут написал человек с вопросами по подписыванию драйверов, и сообщил, что у него десятка успешно грузит драйверы, подписанные только его собственным (не EV) сертификатом, если не включен Secure Boot, и если у системы есть подключение к Интернету. Я сперва не поверил, потом решил проверить, и обнаружил, что 64-разрядные 1909 и 1803 (недавно обновленная) грузят драйверы, подписанные только моим EV-сертификатом от GlobalSign, даже без интернета.


ЕМ>Это очень странно — для чего ж они столько лет загоняли всех в Attestation Signing? Или нынче системы с Secure Boot преобладают, и MS просто решила забить на Legacy? Никто не слышал подробностей?


Подробностей не слышал, но да, с самого начала было объявлено, что MS-подпись — только для Secure Boot. Правда, этот момент не пиарился, поэтому о нём не очень широко известно.
Есть ещё одно исключение: если десятка ставилась как обновление с предыдущей версии (7/8), то требования к подписи тоже остаются прежними, third-party + cross-signature, даже при включённом SB.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re: MS снизила требования к подписи драйверов?
От: Pzz Россия https://github.com/alexpevzner
Дата: 05.02.20 11:28
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Это очень странно — для чего ж они столько лет загоняли всех в Attestation Signing? Или нынче системы с Secure Boot преобладают, и MS просто решила забить на Legacy? Никто не слышал подробностей?


Зафайли им баг репорт. Глядишь, починят.
Re[2]: MS снизила требования к подписи драйверов?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 05.02.20 16:12
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>с самого начала было объявлено, что MS-подпись — только для Secure Boot. Правда, этот момент не пиарился, поэтому о нём не очень широко известно.


Я этого в явном виде нигде не видел, потому и удивился. Наоборот, везде писали, что с десятки 1607 индивидуальным подписям кранты, и оно реально так и было. У меня в 16-м году еще был обычный сертификат от DigiCert, я пытался грузить в тогдашних десятках подписанные им драйверы — они не грузились, хотя и доступ к интернету у всех систем был, и Secure Boot я тогда вообще не пробовал. А теперь, с подписью EV-сертификатом от GlobalSign — грузятся, и человек, который это обнаружил, пишет, что у него грузятся и подписанные обычным сертификатом (на знаю только, от кого).

CF>Есть ещё одно исключение: если десятка ставилась как обновление с предыдущей версии (7/8), то требования к подписи тоже остаются прежними, third-party + cross-signature, даже при включённом SB.


У меня все системы всегда ставились с нуля. Кстати, непонятно, почему эту особенность до сих пор не расковыряли — наверняка можно любую систему заставить думать, что она была обновлена с 7/8.
Re[3]: MS снизила требования к подписи драйверов?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 05.02.20 16:58
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

CF>>с самого начала было объявлено, что MS-подпись — только для Secure Boot. Правда, этот момент не пиарился, поэтому о нём не очень широко известно.


ЕМ>Я этого в явном виде нигде не видел, потому и удивился. Наоборот, везде писали, что с десятки 1607 индивидуальным подписям кранты, и оно реально так и было. У меня в 16-м году еще был обычный сертификат от DigiCert, я пытался грузить в тогдашних десятках подписанные им драйверы — они не грузились, хотя и доступ к интернету у всех систем был, и Secure Boot я тогда вообще не пробовал. А теперь, с подписью EV-сертификатом от GlobalSign — грузятся, и человек, который это обнаружил, пишет, что у него грузятся и подписанные обычным сертификатом (на знаю только, от кого).


Странно, у меня на ранних десятках без Secure Boot (в виртуалках) драйверы, подписанные обычным сертификатом (не EV, не MS) грузились нормально. Правда, времени прошло много, уже не могу вспомнить точно, что и чем я подписывал; есть вероятность, что я чего-то не учёл (не исключено, что сертификат был выписан до дедлайна). Но что про Secure Boot упоминали — это точно. Я это видел в записи какой-то их конференции. Там ещё говорилось, что для десятки требуется Attestation, а для серверных — не ниже HLK (и тоже, только для SB).

CF>>Есть ещё одно исключение: если десятка ставилась как обновление с предыдущей версии (7/8), то требования к подписи тоже остаются прежними, third-party + cross-signature, даже при включённом SB.


ЕМ>У меня все системы всегда ставились с нуля. Кстати, непонятно, почему эту особенность до сих пор не расковыряли — наверняка можно любую систему заставить думать, что она была обновлена с 7/8.


Ну-у... почему ж не расковыряли-то? Всё давно расковыряли. Но насколько я краем уха слышал, инфа о волшебном ключике официально выдаётся MS'ом только ограниченному кругу лиц под NDA. Соответственно, расковырянное стараются сильно не светить. Возможно, опасаются, что если расползётся, то MS может прикрыть лавочку.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[4]: MS снизила требования к подписи драйверов?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 05.02.20 19:22
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Странно, у меня на ранних десятках без Secure Boot (в виртуалках) драйверы, подписанные обычным сертификатом (не EV, не MS) грузились нормально.


То были совсем чистые системы, без отладчика, TestSigning и прочего? А то я периодически забываю, что все это влияет, и надо проверять на чистой загрузке.

CF>не исключено, что сертификат был выписан до дедлайна


Неважно, когда выдан сертификат — только когда была сделана подпись.

CF>Ну-у... почему ж не расковыряли-то? Всё давно расковыряли. Но насколько я краем уха слышал, инфа о волшебном ключике официально выдаётся MS'ом только ограниченному кругу лиц под NDA.


Не. "Расковыряли" — это значит, что на каждом углу лежит свободно.
Re[5]: MS снизила требования к подписи драйверов?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 05.02.20 19:48
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

CF>>Странно, у меня на ранних десятках без Secure Boot (в виртуалках) драйверы, подписанные обычным сертификатом (не EV, не MS) грузились нормально.


ЕМ>То были совсем чистые системы, без отладчика, TestSigning и прочего? А то я периодически забываю, что все это влияет, и надо проверять на чистой загрузке.


Да, я ядерной отладкой не занимаюсь, поэтому практически всегда у меня системы без подобного добра. И я помню, что тогда специально проверял именно загружаемость драйверов, так что отсутствие testsigning точно перепроверил.

CF>>не исключено, что сертификат был выписан до дедлайна


ЕМ>Неважно, когда выдан сертификат — только когда была сделана подпись.


Не-а, там именно на дату сертификата была завязка:
https://docs.microsoft.com/en-us/windows-hardware/drivers/install/kernel-mode-code-signing-policy--windows-vista-and-later-

Exceptions

Cross-signed drivers are still permitted if any of the following are true:
• The PC was upgraded from an earlier release of Windows to Windows 10, version 1607.
• Secure Boot is off in the BIOS.
• Drivers was signed with an end-entity certificate issued prior to July 29th 2015 that chains to a supported cross-signed CA.

Я ещё помню, с нетерпением ждал выхода новой версии VirtualBox после того, как их сертификат истекал, чтобы подсмотреть в конфигах, как они с подписью выкрутятся (это ещё когда автоматизацией Attestation Signing и не пахло). А они взяли и содрали со своего американского подразделения другой сертификат, который тоже был выписан до указанной даты, но действовал три года (а тот, которым они подписывали до этого, был однолетним). И таким образом получили отсрочку от внедрения attestation'а ещё почти на пару лет.

CF>>Ну-у... почему ж не расковыряли-то? Всё давно расковыряли. Но насколько я краем уха слышал, инфа о волшебном ключике официально выдаётся MS'ом только ограниченному кругу лиц под NDA.


ЕМ>Не. "Расковыряли" — это значит, что на каждом углу лежит свободно.


Скажем так: ресурс, где я смог найти инфу по этому ключику, открытый и достаточно известный, и вряд ли там захотели бы палиться нарушением NDA. Но спорить не буду, я просто не обладаю достаточной информацией.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re: MS снизила требования к подписи драйверов?
От: nodir.temir https://github.com/tnodir
Дата: 25.05.20 16:05
Оценка:
Использую обычный Code Signing сертификат от Certum для Open Source проектов.
Windows 10 1909 без Secure Boot загружает мой драйвер: https://github.com/tnodir/fort
Re[2]: MS снизила требования к подписи драйверов?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 25.05.20 17:32
Оценка:
Здравствуйте, nodir.temir, Вы писали:

NT>Использую обычный Code Signing сертификат от Certum для Open Source проектов.

NT>Windows 10 1909 без Secure Boot загружает мой драйвер: https://github.com/tnodir/fort

Интересно, а на сайте у них в таблице сравнения в графе Open Source отсутствует подписывание драйверов и упоминание кросс-сертификата…
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[2]: MS снизила требования к подписи драйверов?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 26.05.20 01:57
Оценка:
Здравствуйте, nodir.temir, Вы писали:

NT>Использую обычный Code Signing сертификат от Certum для Open Source проектов.

NT>Windows 10 1909 без Secure Boot загружает мой драйвер

А с Secure Boot?
Re[3]: MS снизила требования к подписи драйверов?
От: nodir.temir https://github.com/tnodir
Дата: 26.05.20 08:29
Оценка:
ЕМ>А с Secure Boot?

Не пробовал, но не должно работать.
Надеюсь, кто-н. затестит и отпишется.
Re[3]: MS снизила требования к подписи драйверов?
От: nodir.temir https://github.com/tnodir
Дата: 26.05.20 08:45
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

NT>>Использую обычный Code Signing сертификат от Certum для Open Source проектов.


CF>Интересно, а на сайте у них в таблице сравнения в графе Open Source отсутствует подписывание драйверов и упоминание кросс-сертификата…


Да, здесь [1] "Certificate cross-certified by Microsoft" не поддерживается.

Но у Open Source сертификата родитель по цепочке имеет кросс-сертификат от Microsoft.
См. [2] для указания родителя "Certum Trusted Network CA.crt", который был получен из [3].

[1] https://en.sklep.certum.pl/data-safety/code-signing-certificates/open-source-code-signing-1022.html
[2] https://github.com/tnodir/fort/blob/master/deploy/sign/sign-driver.bat
[3] https://docs.microsoft.com/en-us/windows-hardware/drivers/install/cross-certificates-for-kernel-mode-code-signing?redirectedfrom=MSDN
Re[3]: MS снизила требования к подписи драйверов?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 26.05.20 11:30
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

NT>>Windows 10 1909 без Secure Boot загружает мой драйвер


ЕМ>А с Secure Boot?


В Secure Boot же Attestation-подпись от MS нужна. Когда я последний раз проверял, драйверы, подписанные EV-сертификатом нашей компании с кросс-сертификатом, не грузились.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[4]: MS снизила требования к подписи драйверов?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 26.05.20 11:32
Оценка:
Здравствуйте, nodir.temir, Вы писали:

CF>>Интересно, а на сайте у них в таблице сравнения в графе Open Source отсутствует подписывание драйверов и упоминание кросс-сертификата…


NT>Да, здесь [1] "Certificate cross-certified by Microsoft" не поддерживается.


NT>Но у Open Source сертификата родитель по цепочке имеет кросс-сертификат от Microsoft.

NT>См. [2] для указания родителя "Certum Trusted Network CA.crt", который был получен из [3].

Хакер однако! Спасибо за инфу, буду иметь в виду, если вдруг захочется свой драйверный сертификат заиметь.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[4]: MS снизила требования к подписи драйверов?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 27.05.20 06:54
Оценка:
Здравствуйте, nodir.temir, Вы писали:

NT>Но у Open Source сертификата родитель по цепочке имеет кросс-сертификат от Microsoft.

NT>См. [2] для указания родителя "Certum Trusted Network CA.crt", который был получен из [3].

Вы, часом, не умеете разбираться с этими цепочками на уровне сверх традиционно принятого шаманства? Мне бы хотелось понять, как можно проверить валидность как обычной подписи, так и подписи для kernel mode с кросс-сертификатами. Ни винде, ни signtool /verify доверять невозможно — они регулярно противоречат друг другу, и разные версии signtool тоже друг другу противоречат. Нужен алгоритм для того, чтобы определить, с какой стороны проблема — у меня или у целевой системы.

Исходная задача описана здесь
Автор: Евгений Музыченко
Дата: 02.01.20
. В итоге я ее решил, а сегодня получил новый (продленный) EV-сертификат от GlobalSign. Подписывание работает, винда все подписанное загружает, а вот MS Partner Center вернул CAB, подписанный новым сертификатом, с "исчерпывающей" диагностикой SignatureValidationFailed (это все, что они прислали в "файле описания ошибки"). Соответственно, мне нужно понять: то ли моя подпись неверна, то ли сервер MS ее на той стороне проверяет как-то по-особенному.

На signtool, как уже говорил, надежды нет — в системах, загружающих драйвер, оно может утверждать, что его подпись неверна, а в системах, отказывающихся его загружать — что верна.

Существует ли более-менее вменяемая инструкция по ручной проверке цепочек сертификатов, результат которой согласовывался бы с поведением винды при установке/загрузке драйвера?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.