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


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

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

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

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

9 70

9 ответов:

Если вы подписали установщик с приобретенным сертификатом от CA, вы должны связаться с CA для объяснения того, почему они не смогли работать с 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 Desktop App сертификации

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

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

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

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

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

лучший способ гарантировать, что SmartScreen не будет предупреждать пользователей, - это запустить Windows App Certification Kit (WACK) который должен быть включен в Скачать Windows SDK:

Windows App Certification Kit

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

Final Report - Validation passed

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

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

Я искал некоторое время, так что я поделюсь тем, что я нашел до сих пор.

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

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

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

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

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

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

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

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

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

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

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

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

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

Это мой опыт.

Так как Windows 8.1 отсутствует.

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

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

используйте Windows App Certification Kit (WACK)

enter image description here

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

enter image description here

вы должны купить сертификат EV (https://www.globalsign.com/en/code-signing/)

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

Шаг 1: Перейдите к https://sysdev.microsoft.com и войти

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

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

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

enter image description here

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

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

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

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

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

Я подписываю свое приложение автоматически, используя сертификат EV на токене (GlobalSign). Использовать .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"

"точное имя предприятия в cert-token" должно быть точное имя, которое находится в сертификате (токене)

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

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

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

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