Белый рабочий стол моего компьютера на компьютере пользователя
У меня есть настольное приложение, созданное InstallJammer. Приложение не является проблемой, но когда оно установлено на компьютере пользователя, антивирус на компьютере пользователя останавливает службы, созданные моим приложением, и, таким образом, прекращает связь с моим сервером. Мне нужно внести его в белый список, чтобы он не воспринимался как риск для машины и антивирус не останавливал его.
То, что я знал до сих пор,
- Добавление "Publisher" к приложению может помочь рассматривать его как неопасное, так как этот процесс имеет этапы аутентификации моего приложения с помощью сертификата. (Хотя я не знаю, правильно ли это. Я ссылался на эту ссылку)
- Погуглив об этом, я нашел антивирусный сайт, который попросил меня зарегистрироваться в моем приложении.
Мои вопросы:
- Добавление "издатель" будет служить моей цели? Если да, то как бы это занесло в белый список мое приложение?
- Если вышеуказанный параметр не работает, нужно ли мне вносить в белый список все антивирусные программные продукты?
1 ответ
Ответь после того, как я добился всего, чего хотел для этого.
ТЛ; др;
Для людей, непосредственно читающих ответ:
У меня был установщик для Windows (созданный с использованием InstallJammer), который создает службы Windows на компьютере пользователя, который часто попадает в черный список антивирусных программ и брандмауэра. Если вы загрузите его в свой браузер, появится сообщение, подобное изображению ниже.
Почему это происходит:
Это происходит потому, что антивирусные программы и брандмауэр не распознают ваш код (то есть он не может проверить, что он получен из надежного источника). Следовательно, он пытается заблокировать загрузку или занести в черный список сервисы (сервисы, потому что я ссылаюсь на свое приложение), останавливая его или не позволяя ему обмениваться данными через сеть.
Решение:
Вам нужно будет подтвердить свой код (то есть получить цифровую подпись) с помощью сертификата для подписи кода (далее он будет называться CSC). Эти сертификаты предоставляются центрами сертификации (здесь и далее будет называться CA).
Вот некоторые примеры CA: Symantec(тот, который я использовал, потому что у нас был наш сертификат SSL для веб-приложения от этого CA), GlobalSign, DigiCert, Comodo и т. Д.)
На этой странице показан ценовой список CSC от разных CA.
Процесс получения сертификата:
Это немного утомительный процесс, так как он имеет определенные стандарты и правила, которые необходимо соблюдать. Процесс получения сертификата обычно занимает несколько дней. Например, процесс проверки требует отправки по факсу копии лицензии и нескольких счетов за коммунальные услуги в центр сертификации для обоснованного подтверждения моей личности. Они также проверяют номер телефона, и может возникнуть необходимость поговорить с представителем (я немного не уверен в этом процессе, так как он был выполнен моим клиентом в США).
После того, как вы получите CSC:
Вам необходимо сохранить сертификат в виде файла.p12, который затем будет использоваться для подписи вашего кода.
Как подписать:
Microsoft SDK включает в себя инструмент (signtool.exe), который можно использовать для подписи вашего кода (обычно он находится в C:\Program Files (x86)\Windows Kits\8.0\bin\x86, в зависимости от установленной версии SDK ''8.0'может отличаться в нашей машине.
Если вы новичок и не достигли времени, когда вам нужна автоматизация в процессе подписывания файлов (неоднозначно для подписи кода), или у вас очень мало файлов для подписи (максимум 3 или 4) или у вас много файлов для подписать и сумасшедший человек с большим количеством времени, вы можете использовать эту замечательную утилиту, предоставляемую DigiCert, которая обеспечивает действительно хороший пользовательский интерфейс (может быть сарказм) для подписи, а также проверить, действительно ли ваши файлы подписаны. Спасибо DigiCert людям.
Как проверить, подписаны ли ваши файлы:
Конечно, самый простой процесс - проверить свойства вашего файла, содержит ли он вкладку для цифровой подписи. Другой способ состоит в том, что у Microsoft есть инструменты, которые могут проверять, имеет ли ваш код цифровую подпись, это можно выяснить простым поиском в Google.
Как я сделал свою подпись кода (автоматизация):
Для исполняемого приложения главного окна, которое я создаю, у него есть довольно много двоичных файлов и исполняемых файлов. Поэтому я создал командный файл, который выполняет следующие задачи подписи и построения.(Я использовал Microsoft SignTool для подписи файлов из командной строки)
- Спрашивает меня, для какой среды я хочу сделать сборку (dev, staging или production).
- Копирует все необходимые (для сборки) файлы в основную папку.
- Подписывает все внутренние двоичные файлы и исполняемые файлы.
- Выполняет сборку InstallJammer из самой командной строки (как я упоминал ранее, мое приложение построено с использованием InstallJammer). Он выводит окончательный файл Setup.exe.
- И тогда Setup.exe тоже получает подпись.
PS: После подписания кода успех и неудача попадания вашего программного обеспечения в белый список (аутентифицированный или проверенный антивирусным программным обеспечением и брандмауэром) зависит от репутации вашего сертификата. Эта репутация определяется эвристически, а хорошая репутация означает меньшие шансы блокировки вашего приложения.
Совет для Geeky людей, скрывающихся там. Попробуйте купить подписку CSC с самым длинным периодом времени. Это поможет вам избежать пролонгации сертификатов.
Что такое продление сертификата? Ролловер сертификата происходит, когда истекает срок действия вашего старого сертификата, и вы начинаете подписывать свой код новым сертификатом замены; вся ваша репутация, полученная на основе старого сертификата, может быть затруднена, и, следовательно, может быть задержка во времени для вашего нового сертификата для приобретения хорошей репутации.
Таким образом, для условий, когда ваш CSC истекает, и вы хотите избежать неудач, вы можете подписать свое программное обеспечение с самого начала, используя временную метку. Поиск в Google (подпись с использованием метки времени) сделает вас на 5 дюймов умнее.
Для людей, блоги и сайты, которые помогли мне во всем; Более подробную информацию можно найти в блоге Дидье Стивенса.
Также подробное объяснение всего этого и могущественного друга всех веб-разработчиков, интеллектуального фильтра Internet Explorer, можно найти в блоге MSDN.