Yvan Rodrigues Ответов: 3

Будут подписи исполняемого файла фильтр SmartScreen предотвратит от предупреждения пользователя?


Когда пользователи запускают мое приложение в первый раз, они получают предупреждение типа этот[^].


Помешает ли этому подписание заявления?

3 Ответов

Рейтинг:
27

Mike Meinz

После некоторых исследований с помощью Google search с помощью ключа поиска "windows smartscreen prevented an unrecognized app from starting" похоже, что подписание с помощью сертификата подписи кода не избавляет от него сразу. Основываясь на некоторой информации в результатах поиска Google, похоже, что база данных Microsoft проверяется (через подключение к Интернету) и обновляется при каждой установке вашей программы. Репутационный балл для вашего сертификата подписи со временем увеличивается, и в конечном итоге предупреждение SmartScreen исчезает. Ниже приведены некоторые из результатов поиска, которые объясняют это. В последнем примере показано, как отключить функцию SmartScreen, хотя это не рекомендуется.

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

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

Как отключить
Как отключить фильтр SmartScreen в Windows 8?[^]


Рейтинг:
12

Yvan Rodrigues

От архив блога т. е. [^]

Настольные Приложения

Настольные приложения остаются важной частью опыта Windows, и Microsoft по-прежнему привержена безопасности рабочего стола и наших пользователей. Мы понимаем, что Internet Explorer (IE) - это не единственный способ загрузки приложений из Интернета, поэтому Windows 8 теперь использует SmartScreen для проверки репутации приложений при первом запуске приложений, загруженных из интернета.

Эта эволюция SmartScreen в браузере IE-только для системы в целом, представляет собой значительное улучшение для пользователей Windows. Мы видели невероятные результаты с этой функцией в IE9 (подробнее здесь и здесь). Сотни миллионов пользователей избежали заражения вредоносными программами благодаря этому новому опыту, и мы рады предоставить эту защиту пользователям Windows, независимо от выбора браузера. Для получения более подробной информации о функции репутации приложений IE9 и моделях данных прочтите этот пост. Для получения дополнительной информации о безопасности и функциях безопасности в Windows 8 (включая Windows SmartScreen) прочтите этот пост.

Более глубокая интеграция репутации приложений SmartScreen также означает, что разработчики настольных приложений имеют дополнительную мотивацию подписывать свой код и создавать репутацию. В прошлом мы говорили о важности цифровой подписи кода как для создания репутации, так и для доказательства подлинности программ. Я рад сообщить, что сообщество разработчиков откликнулось на этот призыв к действию. С момента выпуска SmartScreen Application Reputation в IE9 мы наблюдаем глобальный рост подписанных загрузок на 10% - С 73% в IE9 RTM до 83% сегодня.

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

ЭВ подписывания кода

Сегодня мы объявляем о нашей поддержке важного прогресса в подписании кода - доступности сертификатов подписи кода EV. Мы также объявляем, что сертификаты подписи кода EV будут интегрированы с технологией репутации приложений SmartScreen в Internet Explorer 9, Internet Explorer 10 и Windows 8.

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

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

Начиная с сегодняшнего дня сертификаты подписи кода EV теперь выдаются Symantec и DigiCert, а интеграция со SmartScreen уже работает (IE9, IE10 и Win8).

Недоброжелатели могут утверждать, что SmartScreen «заставляет» разработчиков тратить деньги на сертификаты. Следует подчеркнуть, что сертификаты подписи кода EV не требуются для создания или поддержания репутации с помощью SmartScreen. Файлы, подписанные стандартными сертификатами подписи кода, и даже неподписанные файлы продолжают завоевывать репутацию, как и с тех пор, как в прошлом году в IE9 была введена функция Application Reputation. Однако наличие сертификата подписи кода EV является убедительным показателем того, что файл был подписан субъектом, который прошел строгий процесс проверки и был подписан с помощью оборудования, что позволяет нашим системам установить репутацию этого объекта быстрее, чем неподписанный или неподписанный -EV программ, подписанных кодом.


Рейтинг:
1

Sergey Alexandrovich Kryukov

Подписание заявки (я надеюсь, вы имеете в виду подписание заявки, чтобы сделать ее сильной)) никогда не изменяет свое поведение, по крайней мере, если приложение не будет изменено. Это ответ на ваш вопрос: это вам не поможет.

Однако я рекомендую подписывать все ваши сборки, если вы когда-нибудь их развернете.

Цель подписания совершенно иная. В какой-то степени он защищает приложение от модификации. Если какой-то вирус попытается изменить исходный файл, приложение не будет выполнено системой. Однако можно провести реверс-инжиниринг, перекомпилировать и снова подписать приложение, заменив исходное. Подпись не может защитить от этого, но можно обнаружить трюк, если вы храните строгое имя его хэш-значения открытого ключа отдельно и можете сравнить. Этот договор используется криптография с открытым ключом:
http://en.wikipedia.org/wiki/Public-key_cryptography[^].

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

http://en.wikipedia.org/wiki/Strong_name[^],
http://en.wikipedia.org/wiki/Global_Assembly_Cache[^],
http://msdn.microsoft.com/en-us/library/wd40t7ad.aspx[^],
http://msdn.microsoft.com/en-us/library/yf1d93sz.aspx[^].

—СА


Yvan Rodrigues

Он не изменяет поведение приложения, но в прошлом он изменил то, как Windows предупреждала пользователей о вашем приложении. Конкретно, в Windows 7 предупреждение UAC не отображается, если ваше приложение подписано Я надеялся, что это был эквивалент Win8, но, по-видимому, нет.

Sergey Alexandrovich Kryukov

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

Однако я должен признать, что это не на 100% точное утверждение. Например, приложение может вывести свое собственное строковое имя, тогда поведение будет "другим". :-)
—СА

Sergey Alexandrovich Kryukov

Независимо от того, как называется страница "Windows 7 предупреждение UAC не отображается, если ваше приложение подписано", считаете ли вы, что это истинное утверждение? Нет. Это кто вам так сказал? Это разрушило бы цель ОАК. Попробуй, посмотрим, что получится...
—СА

Sergey Alexandrovich Kryukov

[ОП прокомментировал:]

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

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

Мое приложение не нуждается в доступе для записи в какие-либо системные каталоги, поэтому UAC не является проблемой, но похоже, что SmartScreen будет.