Подтвердить что ты не робот

Как я могу настроить SmartScreen Filter на самозаверяющий сертификат

Фильтр Microsoft SmartScreen под Windows 8 - это маленький худший кошмар разработчика.

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

Разработчики и администраторы имели возможность отключить предупреждения и запросы, установив сертификат подписчика издателя в хранилище доверенных издателей. Креативные разработчики могли установить свой самоподписанный сертификат подписи кода там, когда они устанавливают предварительный заказ, подписанный и временный, с платным сертификатом подписи кода подлинности. После этого программам, подписанным издателем, будет доверено и не будет отключать аварийные сигналы SmartScreen Filter. По сути, когда-то доверенный, издатель был свободен от повторяющихся сборов.

Недавние изменения в SmartScreen Filter (и его включение в качестве ОС) "в Windows 8" дают понять, что Microsoft хочет, чтобы вы приобрели сертификат подписи кода вместо творческой работы над проблемой, которую они создали для вас. Кто-нибудь открыл новый метод, чтобы доверять издателям, которые используют свои самоподписанные сертификаты подписи кода по умолчанию (т.е. Не отображаются подсказки)? Если вы не полностью отключите фильтр, что могут сделать конечные пользователи, чтобы позволить фильтру SmartScreen всегда доверять самоподписанному сертификату?

Обратите внимание, что покупка сертификата подписи кода не является ответом на этот вопрос. Я ищу способ сообщить SmartScreen Filter доверять издателю, который не покупает сертификаты из внешнего источника, но вместо этого выдает свои собственные для использования внутри своей организации.

ОБНОВЛЕНИЕ: Я думаю, что я нашел обходное решение! Из MSDN, фильтр SmartScreen можно отключить в Windows 8 и Internet Explorer 10 для сайтов, перечисленных как доверенные сайты. Если кто-то может проверить, работает ли этот метод для программ установки, загруженных и запущенных с надежного сайта в Windows 8, это было бы очень полезно и помогло бы многим ISV и внутренним группам разработчиков. Это также было бы обходным путем, необходимым для ответа на этот вопрос. Надежные сайты могут быть настроены групповой политикой, поэтому было бы просто оттуда.

Программно отключить фильтр SmartScreen для зоны доверенных узлов можно, установив либо HKLM\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2! 2301 для машины, либо HKCU\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2! 2301 для пользователя до 0 и добавление сайта, которому следует доверять в зоне доверенных сайтов, можно сделать, как показано на этом вопросе.

Может ли кто-нибудь подтвердить, что мои предлагаемые способы обхода в Windows 8 для неподписанного или самозаверенного исполняемого файла, загруженного с доверенного сайта? Я сам не использую Windows 8, потратив бюджет на обновление ОС на сертификаты.

4b9b3361

Ответ 1

Используя 90-дневную пробную версию Windows 8 от Microsoft, я смог убедиться, что мой метод обхода действительно работает. Если вы хотите заплатить за сертификат подписи кода один раз и только один раз вместо ежегодных сборов, этот метод должен работать и на вас, но я не могу гарантировать никаких гарантий. Мое решение для каждого компьютера, но его легко конвертировать в работу для каждого пользователя.

Это мое решение:

  • Настройка собственной инфраструктуры сертификатов.
  • Публикация копий вашего корневого сертификата ЦС, любых промежуточных сертификатов ЦС, выпущенных вашим корнем, и любых сертификатов подписи кода, выданных вашим промежуточным ЦС, на ваш сайт в виде файлов .cer.
  • Установите сертификат SSL на свой веб-сайт, который был выпущен вашим корневым центром сертификации.
  • Создайте приложение установщика/загрузчика, которое выполняет следующие задачи:
    • Устанавливает корневой сертификат ЦС (с вашего веб-сайта, шаг 2) в хранилище доверенных корневых центров сертификации для конечного пользователя.
    • Отключает фильтр SmartScreen для интернет-зоны доверенных сайтов, устанавливая HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2! 2301 to 0.
    • Добавляет ваш сайт к карте зоны, добавляя ключи реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\yourdomain.com\yoursubdomain.
    • Сопоставьте свой домен с областью доверенных узлов, создав DWORD с именем https со значением 2 в ключе, созданном на предыдущем шаге.
  • Приобретите сертификат подписи кода от члена программы Microsoft Trusted Root, предпочтительно сертификат EV.
    • Перед покупкой убедитесь, что схема сертификата и timestamping, используемая CA для вашего сертификата подписи кода, не приведет к OID 1.3.6.1.4.1.311.10.3.13 или 1.3.6.1.4.1.311.10.3.14, поскольку эти приведет к истечению срока действия сигнатуры, когда срок действия сертификата истечет, независимо от того, установлен ли он timestamped или нет.
  • Подпишите и отметьте метку вашего загрузчика/установщика с сертификатом, приобретенным на шаге 5. Проверьте отсутствие ограничений срока действия подписей. Если все в порядке, вы можете поместить приобретенный сертификат подписи кода в безопасное место и заблокировать его.
  • Опубликуйте свою программу загрузки/установки на свой веб-сайт. Сделайте это предварительным загрузкой для всех ваших продуктов.
  • С этого момента вы можете использовать сертификаты подписи кода (и другие сертификаты, если на то пошло), выданные вашими собственными органами внутренних сертификатов без фильтра SmartScreen, что является неприятностью.

Худшее предупреждение Ive, полученное с использованием этого метода, до сих пор было "Этот тип файла может нанести вред вашему компьютеру". Это типичный "Вы загружаете исполняемый файл!" предупреждение. Он не скрывает параметр "Выполнить" и не появляется для развертываний ClickOnce, используя веб-страницу начальной загрузки, сгенерированную нажатием "Опубликовать" в VS2010.

Спасибо за все комментарии и ссылки.

Ответ 2

Процитировать сайт MSDN:

Отказщики могут утверждать, что SmartScreen "заставляет" разработчиков тратить деньги на сертификаты. Следует подчеркнуть, что подписание кода EV сертификаты не требуются для создания или поддержания репутации с помощью SmartScreen. Файлы, подписанные стандартными сертификатами подписи кода и даже неподписанные файлы продолжают создавать репутацию, поскольку с тех пор Репутация приложений была представлена ​​в IE9 в прошлом году. Однако наличие сертификата подписи кода EV является сильным индикатором того, что файл был подписан сущностью, которая прошла строгую проверку процесс и был подписан с оборудованием, которое позволяет нашим системам создать репутацию для этого лица быстрее, чем без знака или программы, не связанные с кодом EV.

Другими словами, EV (оплачиваемая) проверка является всего лишь одним из факторов большого алгоритма, который определяет, отображается ли предупреждение SmartScreen или нет. Если у вас есть много людей, которые загружают вашу программу, или если ваша ссылка на скачивание программы не изменилась через некоторое время, с некоторой работой вы можете получить свою программу не, чтобы отобразить предупреждение. Кроме того, путем цифровой подписи кода вы можете увеличить репутацию Appication. Это прямо из веб-страницы Microsoft по теме.

Ответ 3

Я нашел очень простой способ обойти фильтр даже без привилегий администратора. Что вам нужно сделать:

  • Открыть блокнот
  • Введите следующую строку: @%*
  • Сохраните файл как "SkipSmartScreen.bat" (да, с кавычками) в той же папке, что и ваше приложение. Вы можете переименовать пакетный файл позже
  • Чтобы запустить приложение, перетащите его в пакетный файл

Затем он обходит фильтр смарт-экрана.

Протестировано в Windows 10 Home, Pro и Enterprise и Windows 8 Pro.

Как это работает:

  • @ - Это просто для взглядов, он скрывает имя выполняемой команды
  • %* - Это расширяется для всех переданных аргументов командной строки (например, файл, который вы упали в пакетном файле
  • Всё это: он выполняет файл через пакетный файл, как если бы это была строка в пакетном файле. По какой-то причине Windows не выполняет проверку файлов, которые выполняются из пакетного файла.

Ответ 4

Вот хорошее объяснение, как отключить SmartScreen:
- Windows SmartScreen - включение или выключение в Windows 8
- Снимите флажок в опциях папки

Что я использовал и что сработало для меня? Это было "вариант один" из первой ссылки:

  • Откройте Панель управления (представление значков) и нажмите/коснитесь значка Центр действий.
  • На левой панели Центра действий щелкните/коснитесь ссылки Изменить настройки Windows SmartScreen.
  • Если появится запрос UAC, нажмите/коснитесь Да.
  • Выберите (точку) вариант, как вы хотите, чтобы Windows SmartScreen обрабатывала непризнанные программы, затем нажмите/коснитесь кнопки ОК.
    ПРИМЕЧАНИЕ. Параметр по умолчанию - Получить одобрение администратора перед запуском нераспознанного приложения из Интернета.
  • По завершении вы можете закрыть Центр действий, если хотите.

Я надеюсь, что это то, что вы искали.:)