Как я могу настроить SmartScreen Filter на самозаверяющий сертификат
Фильтр SmartScreen от Microsoft под Windows 8 – худший кошмар маленького разработчика.
В то время как я понимаю преимущества для конечных пользователей и эффективность при остановке вредоносных программ от установки на компьютерах конечных пользователей, я и многие другие разработчики предпочитают не платить гонорары за ежегодное обновление сертификата подписи кода или, что еще хуже, EV Сертификат подписи кода. Кроме того, когда продукты, разработанные для использования внутри компании, подписываются с доверенным сертификатом из внутреннего ЦС, хранящегося в хранилище доверенных издателей, они все еще становятся жертвой чрезмерно усердного поведения фильтра.
Разработчики и администраторы имели возможность отключить предупреждения и подсказки, установив сертификат подписывания издателя в хранилище доверенных издателей. Креативные разработчики могли установить свой самоподписанный сертификат подписи кода там, когда они устанавливают предварительный заказ, подписанный и временный, с платным сертификатом подписи кода подлинности. После этого программам, подписанным издателем, будет доверено и не будет отключать аварийные сигналы SmartScreen Filter. По сути, когда-то доверенный, издатель был свободен от повторяющихся сборов.
- Могу ли я изменить язык Windows 8 Pro после покупки ПК?
- Можно ли отключить строку заголовка в приложениях метро в Windows 8.1 Update?
- Visual Studio 2010 несовместим?
- Как я могу восстановить программный RAID 0 после форматирования моего основного диска ОС?
- Возможно ли открыть современные приложения пользовательского интерфейса на втором дисплее?
Недавние изменения в 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, потратив бюджет обновления ОС на стоимость сертификатов.
- ПК с Windows 8.1 загружается с любой нажатой клавиши
- Как изменить размер значков рабочего стола в Windows 8?
- Возможно изменение Windows 8 "Горячие углы"
- Как отключить объем Windows8 на экране?
- Ошибка установки Skype; Код 1638 при попытке обновления Skype
- Ошибка загрузки Windows 8 EFI
- Навигация по Windows 8 с контроллером Xbox 360
- Как преобразовать строку в формат Indian Money?
Чтобы процитировать с сайта MSDN :
Недоброжелатели могут утверждать, что SmartScreen «заставляет» разработчиков тратить деньги на сертификаты. Следует подчеркнуть, что сертификаты подписи кода EV не требуются для создания или поддержания репутации с помощью SmartScreen. Файлы, подписанные со стандартными сертификатами подписи кода и даже неподписанными файлами, продолжают создавать репутацию, поскольку они с тех пор, как в прошлом году в IE9 была внедрена репутация приложения. Однако наличие сертификата подписи кода EV является сильным индикатором того, что файл был подписан сущностью, которая прошла строгий процесс проверки и была подписана с оборудованием, которое позволяет нашим системам устанавливать репутацию для этого объекта быстрее, чем без знака или -EV с кодами.
Другими словами, EV (оплачиваемая) проверка является всего лишь одним из факторов большого алгоритма, который определяет, отображается ли предупреждение SmartScreen или нет. Если у вас есть много людей, которые загружают вашу программу, или если ваша ссылка на скачивание программы не изменилась через некоторое время, с некоторой работой вы можете заставить свою программу не показывать предупреждение. Кроме того, путем цифровой подписи кода вы можете увеличить репутацию Appication. Это прямо на веб-странице Microsoft по этой теме .
Используя 90-дневную пробную версию Windows 8 от Microsoft, я смог убедиться, что мой метод обхода действительно работает. Если вы хотите заплатить за сертификат подписи кода один раз и только один раз вместо ежегодных сборов, этот метод должен работать и на вас, но я не могу гарантировать никаких гарантий. Мое решение для каждого компьютера, но его легко конвертировать в работу для каждого пользователя.
Это мое решение:
- Настройте свою собственную инфраструктуру сертификатов.
- Публикуйте копии вашего корневого сертификата ЦС, любых промежуточных сертификатов ЦС, выпущенных вашим корнем, и любых сертификатов подписи кода, выданных вашими промежуточными ЦС на ваш сайт в виде файлов .cer.
- Установите сертификат SSL на свой веб-сайт, который был выпущен вашим корневым центром сертификации.
- Создайте приложение установщика / загрузчика, которое выполняет следующие задачи:
- Устанавливает корневой сертификат ЦС (со своего веб-сайта, шаг 2) в хранилище доверенных корневых центров сертификации для машины конечного пользователя.
- Отключает фильтр SmartScreen для интернет-зоны доверенных сайтов, установив HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Zones \ 2! 2301 на 0.
- Добавляет ваш сайт на карту зоны, добавляя ключ (ы) реестра HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ ZoneMap \ Domains \ yourdomain.com \ yoursubdomain.
- Сопоставьте свой домен с областью доверенных сайтов, создав DWORD с именем https со значением 2 в ключе, созданном на предыдущем шаге.
- Приобретите сертификат подписи кода от члена программы Trusted Root от Microsoft, желательно сертификат EV.
- Перед покупкой убедитесь, что схема сертификата и timestamping, используемая CA для вашего сертификата подписи кода, не приведет к 1.3.1.1.1.1.311.10.3.13 или 1.3.6.1.4.1.311.10.3.14 OID, поскольку они подпись истекает, когда срок действия сертификата истекает, независимо от того, установлен ли он по времени или нет.
- Подпишите и отметьте метку вашего загрузчика / установщика с сертификатом, приобретенным на шаге 5. Проверьте отсутствие ограничений срока действия подписей. Если все в порядке, вы можете поместить приобретенный сертификат подписи кода в безопасное место и заблокировать его.
- Публикуйте программу загрузки / установки на свой веб-сайт. Сделайте это предварительным загрузкой для всех ваших продуктов.
- С этого момента вы можете использовать сертификаты подписи кода (и другие сертификаты, если на то пошло), выданные вашими собственными органами внутренних сертификатов без фильтра SmartScreen, что является неприятностью.
Худшее предупреждение, которое я получил с помощью этого метода до сих пор, было «Этот тип файла может нанести вред вашему компьютеру». Это типичный «Вы загружаете исполняемый файл!». предупреждение. Он не скрывает параметр «Запуск» и не появляется для развертываний ClickOnce, используя веб-страницу загрузочной страницы, сгенерированную нажатием «Опубликовать» в VS2010.
Спасибо за все комментарии и ссылки.
Я нашел очень простой способ обойти фильтр даже без привилегий администратора. Что вам нужно сделать:
- Открыть блокнот
- Введите следующую строку:
@%*
- Сохраните файл как
"SkipSmartScreen.bat"
(да, с кавычками) в той же папке, что и ваше приложение. Вы можете переименовать пакетный файл позже - Чтобы запустить приложение, перетащите его в пакетный файл
Затем он обходит фильтр смарт-экрана.
Протестировано на Windows 10 Home, Pro и Enterprise и Windows 8 Pro.
Как это работает:
-
@
– Это просто для взглядов, оно скрывает имя выполняемой команды -
%*
– Это распространяется на все переданные аргументы командной строки (например, файл, который вы сбросили в пакетном файле - Все это: он выполняет файл через пакетный файл, как если бы это была строка в пакетном файле. По какой-то причине Windows не выполняет проверку файлов, которые выполняются из пакетного файла.
Вот хорошее объяснение, как отключить SmartScreen:
– Windows SmartScreen – включение или выключение в Windows 8
– Снимите флажок в опциях папки
Что я использовал и что сработало для меня? Это был «вариант один» из первой ссылки:
- Откройте панель управления (вид значков) и нажмите / коснитесь значка Центра действий .
- На левой панели Центра действий щелкните / коснитесь ссылки Изменить настройки Windows SmartScreen .
- Если будет предложено UAC , нажмите / коснитесь Да .
- Выберите (точка) вариант, как вы хотите, чтобы Windows SmartScreen обрабатывала непризнанные программы, затем нажмите / коснитесь OK .
ПРИМЕЧАНИЕ. Параметром по умолчанию является получение одобрения администратора перед запуском нераспознанного приложения из Интернета . - Когда закончите, вы можете закрыть Центр действий, если хотите.
Я надеюсь, что это то, что вы искали. 🙂