Как сдать смарт-экран на Win8 при установке подписанного приложения?


80

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

Windows защитила ваш компьютер

Windows SmartScreen предотвратила запуск нераспознанного приложения. Запуск этого приложения может поставить под угрозу ваш компьютер.

Я думаю, что у Microsoft есть стратегия проверки приложения помимо цифровой подписи. У кого-нибудь есть опыт решения этой проблемы, и, пожалуйста, дайте мне подсказку, как решить эту проблему?

Ответы:


47

Если вы подписали установщик с помощью приобретенного сертификата в ЦС, вы должны связаться с ЦС для объяснения, почему они не смогли работать с Microsoft, чтобы избавиться от этого предупреждения.

Если сертификат не от ЦС, а самозаверяющий сертификат, вам придется обратиться в ЦС.

Microsoft уже опубликовала большую часть информации в своем блоге команды Windows,

https://blogs.msdn.microsoft.com/ie/2012/08/14/microsoft-smartscreen-extended-validation-ev-code-signing-certificates/

Лучшие практики

Разработчики по-прежнему должны следовать лучшим практикам, которые мы предлагали в прошлых сообщениях в блогах. Мы добавили к этому руководству дополнительные варианты распространения приложений через Магазин Windows и возможность подписи кода EV:

  • Распространяйте свои приложения через Магазин Windows

Приложения Windows 8 необходимы для прохождения процесса адаптации и проверки приложений в Магазине Windows. Приложения Windows 8 не подпадают под проверку репутации или предупреждения SmartScreen в Windows 8.

  • Цифровая подпись ваших программ (стандартная подпись или подпись кода EV)

Репутация создается и присваивается цифровым сертификатам, а также конкретным файлам. Цифровые сертификаты позволяют агрегировать данные и назначать их одному сертификату, а не нескольким отдельным программам. Хотя это и не обязательно, программы, подписанные сертификатом подписи кода EV, могут немедленно установить репутацию с помощью служб репутации SmartScreen, даже если для этого файла или издателя не существует предыдущей репутации. Сертификаты подписи кода EV также имеют уникальный идентификатор, который упрощает поддержание репутации при продлении сертификатов. Только сертификаты Authenticode, выпущенные центром сертификации, который является участником программы корневых сертификатов Windows, могут обеспечить репутацию.

В настоящее время Symantec и DigiCert предлагают сертификаты подписи кода EV.

  • Не подписывайте и не распространяйте вредоносный код

Распространение кода, обнаруженного как вредоносный, удалит репутацию файла, а также любую репутацию из связанного цифрового сертификата, даже если он подписан сертификатом подписи кода EV.

  • Подайте заявку на получение логотипа Windows или сертификации настольного приложения для Windows 8

Дополнительные сведения об этих программах см. Здесь: Сертификация классического приложения для Windows 8 (требуется для отправки в Магазин Windows) Программа с логотипом Windows


«Если сертификат не от ЦС, а самозаверяющий сертификат, вам придется обратиться к ЦС». Через какие источники дохода любитель или независимый поставщик программного обеспечения должен возмещать примерно 110 долларов в год, взимаемые центрами сертификации?
Damian Yerrick

1
«Как мы уже говорили ранее, SmartScreen создает репутацию как для отдельных программ, так и для сертификата, используемого для подписи этого кода». Цитата из связанного сообщения в блоге Microsoft. Многие проекты с открытым исходным кодом полагаются на свою репутацию, в то время как вы также можете попросить спонсора для покрытия гонораров, если хотите подписать.
Lex Li

48

Мы только что прошли весь процесс перехода от старого сертификата Authenticode к новому. (не сертификату EV, а просто сертификату, который можно использовать в нашем процессе автоматической сборки).

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

Microsoft утверждает, что если старый и новый сертификаты имеют одинаковое текстовое содержимое, репутация устанавливается быстрее. В частности, вот ответ, который я получил от поддержки функции репутации приложений SmartScreen® Filter :

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

Лучший способ убедиться, что SmartScreen не будет предупреждать пользователей, - это запустить комплект сертификации приложений Windows (WACK). который должен быть включен в загрузку Windows SDK:

Комплект сертификации приложений для Windows

После выполнения тестов WACK объясняет, как действовать:

Итоговый отчет - проверка пройдена

Загрузите XML-результат успешной сертификации приложения в https://sysdev.microsoft.com . Через несколько дней SmartScreen узнает о цифровой подписи, используемой для сертифицированной программы, и больше не будет предупреждать пользователей о загрузке.

Примечание. Нам не удалось сертифицировать наше приложение по последним обновлениям Windows 8.1, и нам пришлось использовать чистую установку Windows 8.1, чтобы WACK успешно проверил все наши программы.


15
Я хотел бы упомянуть, что этот процесс занял у меня около 2 часов (может, чуть больше). Я не уверен, что размер проекта имеет значение, но это не двухминутный процесс.
leigero


8
Вроде MS удалила sysdev.microsoft.com. Вы знаете, куда теперь загрузить файл?
Щвова 05

2
Вроде MS удалила sysdev.microsoft.com. Вы знаете, куда теперь загрузить файл?
Phoenix

2
Вместо этого отправляйте файлы здесь: microsoft.com/en-us/wdsi/filesubmission
Рами А.

15

Я долго искал, так что поделюсь тем, что нашел.

Я не нашел никакой документации об этой функции в Windows 8 от Microsoft, но, возможно, я просто искал не в том месте.

В большинстве статей, которые я прочитал, говорится, что фильтр SmartScreen работает следующим образом:

  • Перед запуском установщика или загруженного исполняемого файла Windows 8 обращается к базе данных.
  • База данных может сообщить, была ли эта программа:
    • заявлено как вредоносное / фишинговое (и подтверждено сотрудником Microsoft).
    • используется / управляется многими людьми.

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

некоторые источники: ( здесь ) ( здесь )

Информация, отправляемая в Microsoft, когда пользователь устанавливает программу, включает IP-адрес, хэш установщика и цифровую подпись и, возможно, имя файла приложения. ( см. здесь )

Сотрудники Microsoft будут иметь прямой доступ к базе данных, чтобы добавлять и отмечать безопасные все приложения Microsoft.

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


Ссылка на не log.nadim.cc/?p=78работает, и даже Way Back Machine не показывает никакого контента. Есть ли альтернативные места для размещения контента?
Уве Кейм

11

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

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

Это не так страшно, как кажется. Они предоставят вам второй сертификат для подписи ваших исполняемых файлов (внутри установщика), который останется совместимым с автоматизацией. Подпись установщика должна быть подписана вместе с аппаратным токеном.

2) Если вы не хотите получать сертификат EV, вам нужна репутация. Если вы выполняете обновление, Microsoft перенесет репутацию из вашего старого сертификата в новый. Вам необходимо обратиться в службу технической поддержки MSDN, и примерно через неделю это будет сделано. Я отправил свой старый и новый установщики - со старым и новым сертификатами - и они исправили это.

3) Если это ваш первый сертификат, вы будете использовать SmartScreen, пока не получите репутацию. Вероятно, вам следует пройти сертификацию своего приложения через sysdev.microsoft.com. Но на самом деле не известно, сколько загрузок вам нужно, чтобы заработать положительную репутацию в Microsoft.

Это мой опыт.


3
Подскажите, пожалуйста, куда подать приложение для переноса репутации моего старого сертификата?
CITBL

1
Я использовал свою подписку MSDN, чтобы отправить запрос в службу поддержки разработчиков.
Lompican

2
Я только что прошел через весь процесс с Microsoft. Судя по всему, техническая поддержка MSDN больше не оказывает помощи по этой теме. Вам действительно нужно установить некоторые репутацию , чтобы предупреждения SmartScreen исчезли. Самый простой способ - проверить свое приложение с помощью набора сертификатов приложений для Windows, а затем загрузить результаты на sysdev.microsoft.com.
Пьер Арно

Доступны ли электромобили для частных лиц, а не для корпораций? И какие шаги нужно предпринять любителю, чтобы собрать деньги на одного?
Damian Yerrick

5

Так как Windows 8.1 вышла.

  • Microsoft деактивировала все стандартные сертификаты подписи кода как доверенные, когда вы загружаете их через Интернет на свой компьютер и пытаетесь их установить, но приложение стандартных сертификатов подписи кода работает, если вы распространяете свое приложение через USB или CD-ROM.

  • Не используйте signtool.exeдля проверки ( signtool.exe verify /pa mysetup.exeпокажет успех, но не удастся, когда другие пользователи загрузят его и попытаются установить, всплывающее окно SmartScreen будет продолжать отображаться)

Используйте комплект сертификации приложений для Windows (WACK)

введите описание изображения здесь

  • Этот стандартный сертификат подписи кода мертв. Означает, что если у вас есть стандартный сертификат подписи кода, он больше не будет работать надежно, как раньше, даже если Windows App Certification Kit (WACK) показывает PASS с WARNING, это не означает, что его 100% проверка прошла успешно.

введите описание изображения здесь

Вам необходимо приобрести сертификат EV ( https://www.globalsign.com/en/code-signing/ )

Итак, чтобы добиться 100% успеха, следуйте кормлению с ложки:

Шаг 1: перейдите на https://sysdev.microsoft.com и войдите в систему.

а) Создайте учетную запись компании> далее

б) Загрузите файл winqual.exe в виде zip-файла, предоставленного Microsoft, теперь подпишите winqual.exe своим стандартным сертификатом или сертификатом EV, а затем нажмите «Далее», чтобы загрузить файл для проверки.

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

введите описание изображения здесь


4
Это для разработки драйверов.
crea7or 02

Значит, всем нужно покупать этот сертификат, который стоит 290 долларов в год, чтобы избежать использования смарт-экрана?
user3304007

4

Я протестировал решение для сертификата EV, и оно действительно работает.

К сожалению, я также отмечу, что сертификаты EV несовместимы с TeamBuild, которая выполняет подпись в контексте службы. Для сертификатов EV требуется аппаратный токен, который взаимодействует с поставщиком криптографических услуг, предоставляемым SafeNet, Inc для использования со всеми авторизованными поставщиками сертификатов EV (VeriSign и DigiCert).

Когда происходит подписание, драйверы Safenet запрашивают пароль, который в некоторой степени несовместим с выполнением в контексте службы. Кроме того, Safenet обеспечивает защиту, предотвращающую подписание с чего-либо, кроме самой консоли. Вы даже не можете войти в сеанс удаленного рабочего стола. Таким образом, подписание из Teambuild в лучшем случае проблематично, а в худшем - невозможно.

Я работал с Microsoft, и они не смогли предоставить обходной путь для подписи или какой-либо другой способ мгновенно получить репутацию с помощью SmartScreen.


1

К сожалению, у меня недостаточно репутации, чтобы просто прокомментировать один из приведенных выше ответов. Однако, если вы укажете частичное доверие для опубликованного приложения (я выбрал зону Интернета) и у вас есть сертификат подписи кода, предупреждение интеллектуального экрана не отображается (проверено в Win10).


1

Я подписываю свое приложение автоматически, используя сертификат EV на токене (GlobalSign). Используйте файл .bat. в файле ".bat" введите пример: (Для sha1)

SignTool.exe sign /n "Exact Enterprise name in the cert - token" /t "http://timestamp.globalsign.com/scripts/timstamp.dll" "c:\Patch_to_file\Filename.exe"

«Точное имя предприятия в сертификате - токене» должно быть точным именем, указанным в сертификате (токене).


1
А диалог смартскрина убрал?
user3304007

0

«Версия файла несовместима с версией Windows, которую вы используете». На сервере Windows 2008 нет кнопки «Подробнее», чтобы выбрать установку в любом случае.

Поскольку мы разрабатываем настольное программное обеспечение Windows (а не «Приложения») с использованием продуктов сторонних производителей (Delphi) и используем Innosetup для нашего установщика, проверка приложения бессмысленна. Он сидит там 30 минут, ничего не делая, мы просто запускаем приложение, затем закрываем его вручную, и он генерирует отчет о прохождении.

Мы кодируем подписи всех наших выпусков и каждого исполняемого файла в них.

Когда мы загружаем XML в Microsoft, сертифицированный XML находится на сайте, не связанном с нашей основной учетной записью разработчика, и не имеет возможности опубликовать его в Microsoft Store. 45 минут на одно приложение потрачено впустую.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.