Удалить цифровую подпись msi

Обновлено: 07.07.2024

Как известно в х64 битных платформах была введена процедура обязательной цифровой подписи всего того, что может попасть в ядро системы, а именно драйверов. О том, на сколько это эффективно и оправданно можно долго спорить, но только одно можно сказать точно — гимора разработчикам тут определенно добавилась, особенно тем, кто раньше никогда подписями не занимался. Также для многих стало крайне не очевидно, каким образом разрабатывать драйвер, когда нет на руках валидного сертификата, а тестировать ведь как-то надо. Вот сча я попытаюсь в краткой и доступной форме рассказать о том как это все делается.

Итак, прежде всего, я бы хотел выделить два типа сертификатов, которые я буду рассматривать в рамках данной статьи — тестовый и настоящий. Разница состоит в том, что настоящий сертификат подписан доверенным CA (Certification Authorities — доверенный издатель), типа VeriSign, GlobalSign ну или самим Microsoft, а тестовый подписан самопальным сертификатом типа от Васи Пупкина.

image

  1. Сгенерить сам сертификат и установить его. Это можно сделать с помощью тулзы makecert, например так:
    Makecert -r -pe -ss PrivateCertStore -n "CN=TestCertforWDK" TestCert.cer
    где
    PrivateCertStore — название хранилища
    TestCertforWDK — название самого сертификата
    TestCert.cer — имя файла с сертификатом
    (эта тулза входит в комплект WDK 6000/6001 и расположена bin/SelfSign, в WDK 7600 она почему то не входит. )
  2. Добавить этот сертификат в хранилище с доверенным корневыми CA. Открываем в mmc консоль Сертификаты (Run->mmc->File->Add/Remove Snap-in->Certificates) там находим свой сертификат (например в хранилище PrivateCertStore), копируем его в доверенные корневые издатели (Trusted Root Certification Authorities).
  3. Разрешить тестовые подписи. Для этого прописываем в администраторской консоли:
    bcdedit.exe –set TESTSIGNING ON
    и перезагружаемся, в итоге на десктопе, после перезагрузки, по углам красоваться соответствующие надписи.

image

Настоящий сертификат
Тут тоже не все так просто. Дело в том, что не любой CA может выдавать сертификаты для подписи драйверов Windows, а только те, которые авторизованы самой Microsoft, это значит, что корневые сертификаты этих издателей должны быть подписаны Microsoft — что, как раз и выражается в виде этого кросс-сертификата. Вот именно из-за отсутствия кросс-сертификата — тестовая подпись, никогда не будет работать как настоящая. Список доверенных CA, которые обладают такими кросс-сертификатами — представлен тут, там же можно скачать и сами кросс-сертификаты.
После того, как вы выложите несколько сотенок $$$ доверенному центру сертификации, они выдадут вам .pfx файл в котором будут содержаться публичный и приватный ключи. Вы его запустите и с помощью нехитрого диалога (как на рисунке ниже), установите в систему.

Цифровая подпись в Windows 7

Сразу следует оговориться, что деактивируя проверку цифровой подписи, вы действуете на свой страх и риск. Дело в том, что неизвестные драйвера могут быть источником уязвимости или прямой опасности, если являются продуктом разработки злоумышленников. Поэтому не рекомендуем снимать защиту при установке объектов, скачанных из интернета, так как это очень рискованно.

В то же время бывают ситуации, когда вы уверены в подлинности драйверов (например, когда они поставляются в комплекте с оборудованием на дисковом носителе), но у них по какой-то причине отсутствует цифровая подпись. Вот для таких случаев и стоит применять описанные ниже способы.

Способ 1: Переход в режим загрузки с деактивацией обязательной верификации подписей

Чтобы деактивировать верификацию подписи драйверов при их инсталляции на Виндовс 7, можно произвести загрузку ОС в особом режиме.

    Перезагрузите или включите компьютер в зависимости от того, в каком состоянии он в данный момент находится. Как только прозвучит звуковой сигнал при запуске, зажмите клавишу F8. В некоторых случаях это может быть иная кнопка или сочетание, в зависимости от версии BIOS, установленного на вашем ПК. Но в подавляющем большинстве случаев нужно применять именно вышеуказанный вариант.

Окно запуска компьютера

Переход в режим отключения обчзательной проверки подписи драйверов в Windows 7

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

Способ 2: «Командная строка»

Отключить верификацию цифровой подписи можно при помощи введения команд в «Командную строку» операционной системы.

    Жмите «Пуск». Переходите во «Все программы».

Переход в раздел все программы с помощью меню Пуск в Windows 7

Переход в папку Стандартные из раздела все программы с помощью меню Пуск в Windows 7

Запуск Командной строки от имени администратора через контекстное меню в папку Стандартные из раздела все программы с помощью меню Пуск в Windows 7

bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS

Ввод первой команды для отключение проверки подписи драйверов в интерфейсе Командной строки в Windows 7

bcdedit.exe -set TESTSIGNING ON

Ввод второй команды для отключение проверки подписи драйверов в интерфейсе Командной строки в Windows 7

Проверка подписи драйверов отключена путем ввода двух команд в интерфейсе Командной строки в Windows 7

bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS

Ввод первой команды для включения проверки подписи драйверов в интерфейсе Командной строки в Windows 7

bcdedit -set TESTSIGNING ON

Ввод второй команды для включения проверки подписи драйверов в интерфейсе Командной строки в Windows 7

Проверка подписи драйверов включена путем ввода двух команд в интерфейсе Командной строки в Windows 7

Существует ещё один вариант действий через «Командную строку». В отличие от предыдущего, он требует всего лишь введения одной команды.

bcdedit.exe /set nointegritychecks ON

Ввод команды для отключения проверки подписи драйверов в интерфейсе Командной строки в Windows 7

Ввод команды для включения проверки подписи драйверов в интерфейсе Командной строки в Windows 7

Проверка подписи драйверов включена путем ввода команды в интерфейсе Командной строки в Windows 7

Способ 3: «Редактор групповой политики»

Другой вариант деактивации верификации подписи осуществляется методом манипуляций в «Редакторе групповой политики». Правда, он доступен только в редакциях «Корпоративная», «Профессиональная» и «Максимальная», а вот для редакций «Домашняя базовая», «Начальная» и «Домашняя расширенная» этот алгоритм выполнения поставленной задачи не подойдет, так как в них отсутствует необходимая функциональность.

    Для активации нужного нам инструмента воспользуемся оболочкой «Выполнить». Нажмите Win+R. В поле отобразившейся формы введите:

Переход в редактор локальной групповой политики путем ввода команды в окно Выполнить в Windows 7

Переход в раздел Конфигурация пользователя в окне редактора локальной групповой политики в Windows 7

Переход в папку Административные шаблоны из раздела Конфигурация пользователя в окне редактора локальной групповой политики в Windows 7

Переход в каталог Система из папки Административные шаблоны в окне редактора локальной групповой политики в Windows 7

Переход в папку Установка драйвера из каталога Система в окне редактора локальной групповой политики в Windows 7

Открытие окна Цифровая подпись драйверов устройств из папки Установка драйвера в окне редактора локальной групповой политики в Windows 7

Отключение проверки подписи драйверов в окне Цифровая подпись драйверов устройств в редакторе локальной групповой политики в Windows 7

Перезагрузка компьютера с помощью кнопки Пуск в Windows 7

Способ 4: «Редактор реестра»

Следующий способ решения поставленного задания выполняется через «Редактор реестра».

Переход в окно редактора системного реестра путем ввода команды в окно Выполнить в Windows 7

Переход в папку HKEY_CURRENT_USER в окне редактора системного реестра в Windows 7

Переход в каталог Software из папки HKEY_CURRENT_USER в окне редактора системного реестра в Windows 7

Переход в папку Policies из каталога Software в окне редактора системного реестра в Windows 7

Переход к созданию нового раздела в каталоге Microsoft через контекстное меню в окне редактора системного реестра в Windows 7

Присвоение имени новой папке в каталоге Microsoft в окне редактора системного реестра в Windows 7

Создание параметра DWORD 32 bit в разделе Driver Signing через контекстное меню в окне редактора системного реестра в Windows 7

Переход к переименованию нового параметра DWORD 32 bit в разделе Driver Signing через контекстное меню в окне редактора системного реестра в Windows 7

Переименование нового параметра DWORD 32 bit в разделе Driver Signing в окне редактора системного реестра в Windows 7

Переход в свойства нового параметра DWORD 32 bit в разделе Driver Signing в окне редактора системного реестра в Windows 7

Окно свойств параметра BehaviorOnFailedVerify в разделе Driver Signing в окне редактора системного реестра в Windows 7

Закрытие окна редактора системного реестра в Windows 7

В Виндовс 7 существует несколько методов деактивации проверки подписи драйверов. К сожалению, только вариант с включением компьютера в особом режиме запуска гарантировано обеспечит нужный результат. Хотя и он имеет некоторые ограничения, выражающиеся в том, что после запуска ПК в обычном режиме все инсталлированные драйвера без подписи слетят. Остальные методы могут работать не на всех компьютерах. Их работоспособность зависит от редакции ОС и установленных обновлений. Поэтому, возможно, придется перепробовать несколько вариантов, прежде чем вы получите ожидаемый результат.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

image


Хабрапривет!

Ну вроде как удалось решить вопросы с кармой, но они ником образом не касаются сегодняшней темы, а лишь объясняют некоторое опоздание её выхода на свет (исходные планы были на ноябрь прошлого года).

Сегодня я предлагаю Вашему вниманию небольшой обзор по системе электронных подписей исполняемых файлов и способам обхода и фальсификации этой системы. Также будет рассмотрен в деталях один из весьма действенных способов обхода. Несмотря на то, что описываемой инфе уже несколько месяцев, знают о ней не все. Производители описываемых ниже продуктов были уведомлены об описываемом материале, так что решение этой проблемы, если они вообще считают это проблемой, на их ответственности. Потому как времени было предостаточно.

ТЕОРИЯ

Идея и технология электронной подписи для исполняемых файлов возникла ещё в эпоху Windows NT. C момента появления Windows Vista компания Microsoft начала активную компанию по продвижению этой технологии. По задумке производителя, подписанный код может идти только от доверенного автора этого кода, а следовательно гарантированно не наносит вреда системе и защищён от ошибок (три ха-ха).

Тем не менее, поскольку в механизме подписи чаще всего используется довольно сложный криптоустойчивый механизм, общее доверие к подписанному коду распространилось. Не ушли от этого и антивирусные вендоры. Верно: если код подписан, то он явно не может быть вирусом, а потому ему можно доверять априори, тем самым снизив вероятность ложных срабатываний. Поэтому в большинстве современных антивирусных продуктов по умолчанию стоит обход проверки подписанных файлов, что повышает скорость сканирования и снижает вероятность ложных срабатываний. Более того, зачастую подписанные программы автоматически заносятся в категорию «доверенных» поведенческих анализаторов ака хипсов.

Становится ясно, что подписав свои творения валидной подписью, вирусмейкер получает довольно богатую аудиторию клиентов, у которых даже с активным и регулярно обновляемым антивирусом произойдёт заражение. Очевидно, что это — весьма лакомый кусочек, что легко заметно на примере уже ставшего знаменитым вируса Stuxnet, где код был подписан валидными сертификатами Realtek (позже сообщалось и о подписях от JMicron).

Но у этого подхода есть и оборотная сторона: после выявления скомпрометированной подписи она немедленно отзывается, а по самому факту подписи АВ-вендоры ставят сигнатурный детект, понятно, что с 100%-ным срабатыванием. Учитывая то, что приобрести украденный сертификат, необходимый для подписывания крайне дорого, ясно, что вирусмейкеры заинтересованы в тотальном обходе механизма проверки подписи, без валидных private-ключей или с помощью самостоятельной генерации таких ключей. Это позволит обходить защиту не только антивирусных продуктов, но и устанавливать драйвера и ActiveX-компоненты без предупреждений, да и вообще как-то пробиться в мир х64, где без подписей ничего не установить вообще.

Но об этом — подробнее на практике.

Кто-то из великих сказал, что чтобы опередить врага, надо начать мыслить как он. Итак, если мы вирусмейкеры, то что мы можем сделать?

1. Скопировать информацию о сертификате с какого-нибудь чистого файла.

Это наиболее популярный способ на данный момент. Копируется информация подписи до мельчайших подробностей, вплоть до цепочки доверенных издателей. Понятно, что такая копия валидна только на взгляд пользователя. Однако то, что отображает ОС вполне может сбить с толку неискушённого и быть воспринято как очередной глюк — ещё бы, если все издатели правильные, то почему это подпись невалидна? Увы и ах — таких большинство.

2. Использовать самоподписанные сертификаты с фэйковым именем.

Аналогично выше описанному варианту за исключением того, что даже не копируется цепочка в пути сертификации.

3. Подделать MD5.

Несмотря на то, что слабость алгоритма MD5 уже давно описана (тут и тут), он до сих пор часто используется в электронных подписях. Однако реальные примеры взлома MD5 касаются или очень маленьких файлов, или приводят к неправильной работе кода. На практике не встречаются вирусы с поддельными взломанными подписями на алгоритме MD5, но тем не менее такой способ возможен теоретически.
4. Получить сертификат по обычной процедуре и использовать его в злонамеренных целях.

Одна из наиболее распространённых методик авторов так называемых riskware, adware и фэйковых антивирусов. Примером может послужить фэйковый Perfect Defender (стандартный развод: «просканируйтесь бесплатно — у вас вирус — заплатите нам и мы его удалим») существует с подписями нескольких контор:
• Jeansovi llc
• Perfect Software llc
• Sovinsky llc
• Trambambon llc

Как это делается хорошо могут рассказать наши отечественные разработчики винлокеров, мелкими буквами пишущие про «программу-шутку» и т.д., таким образом оберегаясь от статьи о мошенничестве. Так и живём…

Интересно, что реально существуют абсолютно нормальные программы с такими именами владельцев:
• Verified Software
• Genuine Software Update Limited
• Browser plugin

Понятно, что если уж этому верить, то ошибиться при первом взгляде на сертификат несложно.

Справедливости ради отмечу, что подписать х64-драйвер далеко не так просто, в этом случае пока нарушений не замечено.

5. Найти какого-нибудь работника доверенной компании и попросить его подписать Ваш код.

Без комментариев. Все любят деньги. Вопрос только в сумме :)

6. Украсть сертификат.

На данный момент известно три больших семейства троянцев, «заточенных», в частности, под похищение сертификатов. Это:
• Adrenalin
• Ursnif
• Zeus
• SpyEye (возможно)

Тем не менее пока не замечено массовых случаев использования украденных сертификатов в новых версиях этих троянцев. Возможно, это козырь в рукаве? Время покажет…

7. Заразить систему разработки доверенного разработчика и внедрять злонамеренный код в релизы до подписания.

Яркий пример такого заражения — вирус-концепт Induc.a. Вирус внедряет код на этапе компиляции, заражая систему разработки. В итоге разработчик даже не знает, что в его программе появился невидимый «довесок». Релиз проходит подпись и выходит в свет с полноценным сертификатом. Видишь суслика? А он есть! ;)

К счастью, Induc.a является только PoC, выполняя только заражение систем разработки без реализации какого бы то ни было дополнительного вредоносного функционала.

Ну а теперь — обещанные вкусняшки.

УЯЗВИМОСТЬ ИЛИ КАК Я ПРОВЁЛ ЭТИМ ЛЕТОМ

Как видим, вариантов обхода подписи достаточно много. В нашем примере будет рассмотрен модифицированный вариант 1 и 2, описанные выше.

Итак, что нам потребуется?
— MakeCert.exe
— cert2spc.exe
— sign.exe
— ruki.sys
— mozg.dll

Думаю, что для хабрачитателя не составит труда найти эти компоненты, но для самых ленивых выкладываю первые три здесь. Последние два не выкладываю в виду жёсткой привязки к железу, полному отсутствию кроссплатформенности и специфичности кода :)

В результате выполнения мы получим veri.pvk и veri.cer, пригодные для подписывания.

Теперь создадим дочерний сертификат с использованием полученных только что:

В итоге получим kl.pvk и kl.cer, которые будут доверенными сертификатами от недоверенного издателя. Цепочку можно продолжать долго, задуривая наивного пользователя. Но итог будет один: сертификат не будет валидным, потому как в цепочке есть один недоверенный элемент. НО!

В Windows имеется возможность установки любого сертификата, в том числе и самоподписанного, в качестве доверенного. Это удобно: в ряде случаев разработчик может сделать себе самоподписанный сертификат, ввести его в доверенные и спокойно работать со своими приложениям. В нашем случае это удобно вдвойне, потому как такой внос — очевидно, простое внесение информации в реестр. при чём информации отнюдь не специфичной для конкретной системы.

Установим на нашу тестовую виртуалку любой монитор реестра, после чего внесём наш искомый сертификат от якобы VeriSign в доверенные. Отследим, где произошло изменение — и voila! Мы можем сделать дамп соответствующей ветки реестра, после чего засунуть её в инсталлер. В итого, наш инсталлер вносит в реестр инфу, автоматически превращая сертификат первичного издателя в доверенный и валидируя всю цепочку.

Чтобы окончательно не открывать все карты, скажу только, что в моём случае дамп реестра имел вид
Windows Registry Editor Version 5.00

ну или если только для текущего пользователя, то
Windows Registry Editor Version 5.00

Внеся в реестр эти данные, программа с фэйковой цепочкой подписи автоматом проходила проверку по sigverif.exe. Ну а подписать наш код с помощью полученного сертификата вообще просто, достаточно батника:

cert2spc.exe kl.cer kl.spc
sign.exe -spc kl.spc -v kl.pvk -n "My Installer" -i "http://habrahabr.ru" -ky signature -$ commercial -a sha1 -t "http://timestamp.verisign.com/scripts/timstamp.dll" myprogram.exe
del kl.spc

Самое забавное, что на момент написания материала в далёком октябре-ноябре 2010-го Kaspersky Internet Security 2011 не отслеживала указанные ветки реестра, а проверку валидности цепочки оставляла на усмотрение ОС, которую мы довольно просто надули. Не знаю, что сейчас, но вроде как некоторые ветки заблокировали… Проверяйте, отписывайтесь!

Нужно отметить, что для простановки подписей возможно использование и специфичного, недоступного в паблике софта. Понятно, что подписи он не ломает, но даёт куда более гибкие возможности для заполнения полей X500, что ещё лучше создаёт видимость валидности. Вот тут возможно скачать любопытный пример. В архиве — файл популярной замены Блокноту bred3_2k (офсайт) с и без подписи Microsoft :) Чтобы подпись полностью стала валидной, достаточно внести в реестр изменения, содержащиеся в файле key +.reg. Аналогично, файл key -.reg эти изменения отменяет. Отследите путь сертификации — он любопытен :)

Сразу обращаю внимание на то, что автор «примера» прописал собственный таймстамп-сервер, так что любые манипуляции приведут к тому, что автор узнает Ваш IP — и дальше, как описывалось. Если хотите, то можете отследить эти обращения и отписаться в комментах ;)

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

В статье использован материал презентации Jarno Niemela (F-Secure).

Как отключить цифровую подпись в виндовс 10

Как отключить проверку наличия подписи у ПО

Способ 1: DSEO

Чтобы не копаться в настройках системы, имеется специальная программа, которая присваивает идентификатор для нужного драйвера. Driver Signature Enforcement Overrider позволяет изменять цифровые подписи в любом ПО и драйверах.

Использование утилиты Driver Signature Enforcement Overrider в виндовс 10

Переход к редактированию цифровой записи в утилите Driver Signature Enforcement Overrider в виндовс 10

Указание пути к драйверу в специальной утилите Driver Signature Enforcement Overrider в виндовс 10

Способ 2: Загрузка ОС в специальном режиме

Этот способ является временным решением возникшей проблемы. Он позволит отключить проверку лишь до следующей перезагрузки компьютера или ноутбука. Тем не менее, он может быть весьма полезен в некоторых ситуациях. Этот способ мы разделим на две части, так как в зависимости от установленной версии ОС ваши действия будут несколько отличаться.

Для владельцев Windows 7 и ниже

Временно отключаем проверку подписи в Windows 7

Обладателям Windows 8 и выше

Несмотря на то, что с проблемой проверки цифровой подписи сталкиваются в основном владельцы Windows 7, подобные трудности встречаются и при использовании последующих версий ОС. Данные действия необходимо выполнять, предварительно войдя в систему.

Выбираем пункт диагностика

Выбираем строку дополнительные параметры

Выбираем параметры загрузки

Временно отключаем проверку подписи для Windows 10 и ниже

У этого способа есть один недостаток, который проявляется в некоторых случаях. Он заключается в том, что после очередного включения проверки установленные ранее драйвера без надлежащей подписи могут прекратить свою работу, что приведет к определенным трудностям. Если такая ситуация у вас возникла, вам следует использовать следующий способ, позволяющий отключить проверку насовсем.

Способ 3: Настройка групповой политики

С помощью данного способа вы сможете отключить обязательную проверку полностью либо до тех пор, пока вы ее не включите обратно самостоятельно. Одним из достоинств данного способа является то, что он применим на абсолютно любой операционной системе. Вот что необходимо для этого сделать:

Запускаем окно групповой политики

Открываем раздел Административные шаблоны

Открываем папку Установка драйвера

Параметры цифровых подписей ПО

Окно настроек проверки подписи драйвера

bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON

Прописываем команды в Командную строку

Тестовый режим системы

Используя один из приведенных выше способов, вы с легкостью избавитесь от проблем, связанных с установкой ПО без цифровой подписи. Не стоит думать, что отключение функции проверки повлечет за собой появление каких-либо уязвимостей системы. Эти действия совершенно безопасны и сами по себе не заразят ваш компьютер вредоносными программами. Тем не менее, рекомендуем всегда использовать антивирус, дабы обезопасить себя полностью от любых проблем при серфинге в интернете. К примеру, можно использовать бесплатное решение Avast Free Antivirus.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Читайте также: