Jak przekazać smart screen na Win8 po zainstalowaniu podpisanej aplikacji?

Jesteśmy programistą i posiadamy podpisany cyfrowo instalator aplikacji. Po zainstalowaniu tej aplikacji wyskakuje ekran inteligentny, który wpływa na proces instalacji. Pisze

Windows protected your PC

Windows SmartScreen uniemożliwił uruchomienie nierozpoznanej aplikacji, Uruchomienie tej aplikacji może narazić komputer na ryzyko.

Myślę, że Microsoft ma jakąś strategię weryfikacji aplikacji oprócz podpisu cyfrowego. Czy ktoś czy masz doświadczenie w tym problemie i daj mi jakąś wskazówkę, aby rozwiązać ten problem?

Author: Jk1, 2012-09-07

9 answers

Jeśli podpisałeś instalator z zakupionym certyfikatem od urzędu certyfikacji, powinieneś skontaktować się z urzędem certyfikacji w celu wyjaśnienia, dlaczego nie udało się im współpracować z Microsoft, aby pozbyć się tego ostrzeżenia.

Jeśli certyfikat nie pochodzi z urzędu certyfikacji, ale z własnoręcznie podpisanego certyfikatu, będziesz musiał uciekać się do urzędu certyfikacji.

Microsoft opublikował większość informacji na blogu zespołu Windows już,

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

Najlepsze Praktyki

Programiści powinni nadal stosować najlepsze praktyki, które zaproponowaliśmy w poprzednich wpisach na blogu. Dodaliśmy do tego Wskazówki dodatkowe opcje dystrybucji aplikacji przez sklep Windows I opcję podpisywania kodu EV:

  • Dystrybuuj swoje aplikacje przez System Windows Sklep

Aplikacje Windows 8 są wymagane do przejścia procesu wdrażania i przeglądania aplikacji przez Windows Store developer. Aplikacje systemu Windows 8 nie są objęte kontrolą reputacji aplikacji SmartScreen ani ostrzeżeniami w systemie Windows 8.

  • podpisuj cyfrowo swoje programy (podpisywanie kodu standardowego lub EV)
Reputacja jest generowana i przypisywana do certyfikatów cyfrowych oraz określonych plików. Certyfikaty cyfrowe pozwalają na być zagregowane i przypisane do jednego certyfikatu, a nie do wielu indywidualnych programów. Chociaż nie jest to wymagane, programy podpisane certyfikatem podpisywania kodu EV mogą natychmiast ustanowić reputację w usługach reputacji SmartScreen, nawet jeśli dla tego pliku lub wydawcy nie istnieje wcześniejsza reputacja. Certyfikaty podpisywania kodu EV mają również unikalny identyfikator, który ułatwia utrzymanie reputacji w przypadku odnowienia certyfikatu. Tylko certyfikaty Authenticode wydane przez urząd certyfikacji, który jest członkiem program certyfikatu głównego systemu Windows może ustanowić reputację.

W tej chwili Symantec i DigiCert oferują certyfikaty podpisywania kodu EV.

  • nie podpisuj ani nie rozpowszechniaj złośliwego kodu

Rozpowszechnienie kodu wykrytego jako złośliwy spowoduje usunięcie reputacji z pliku, a także reputacji z powiązanego certyfikatu cyfrowego – nawet jeśli jest on podpisany certyfikatem podpisywania kodu EV.

  • Złóż wniosek o Logo Windows lub Certyfikacja aplikacji desktopowej Windows 8

Dowiedz się więcej o tych programach tutaj: Certyfikat aplikacji komputerowej Windows 8 (wymagany w przypadku zgłoszeń do Sklepu Windows) Program Logo Windows

 45
Author: Lex Li,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-04 06:36:33

Właśnie przeszliśmy przez cały proces przechodzenia ze starego certyfikatu Authenticode do nowego (nie certyfikatu EV, tylko zwykłego certyfikatu, który może być użyty w naszym zautomatyzowanym procesie budowania).

Microsoft nie zapewnia już żadnych sposobów przeniesienia reputacji z istniejącego certyfikatu na nowy. Więc nie próbuj dzwonić do ich wsparcia. Po prostu zmarnujesz dużo czasu i energii. I nie będą w stanie pomóc.

Microsoft twierdzi, że jeśli stare i nowe certyfikaty mają tę samą treść tekstową, reputacja zyskuje szybszą reputację. Dokładniej, oto odpowiedź, którą otrzymałem od zespołu wsparcia SmartScreen® Filter ' s Application Reputation feature:

Pamiętaj, że za każdym razem, gdy odnawiasz certyfikat o znanej reputacji, prawdopodobnie zobaczysz ostrzeżenia podczas początkowego pobierania plików podpisanych odnowionym certyfikatem. Jednak znana reputacja na odnowionym certyfikacie jest zazwyczaj ustanowiony szybciej niż na nowym certyfikacie. Podczas gdy Odnowiony certyfikat ustanawia reputację, użytkownicy mogą nadal klikać, aby uruchomić lub zapisać pobieranie. Aby to zrobić, wybierają akcje / więcej opcji / Uruchom i tak z menedżera pobierania.

Najlepszym sposobem, aby upewnić się, że SmartScreen nie ostrzega użytkowników, jest uruchomienie Windows App Certification Kit (WACK), który powinien być zawarty w Windows SDK download:

Windows App Certification Kit

Po wykonaniu testów, WACK wyjaśnia, jak postępować:

Raport końcowy-zatwierdzenie zakończone

Prześlij wynik XML pomyślnej certyfikacji aplikacji do https://sysdev.microsoft.com . kilka dni później SmartScreen będzie wiedział o podpisie cyfrowym używanym dla certyfikowanego programu i nie będzie już ostrzegał użytkowników przy pobieraniu.

Uwaga nie byliśmy w stanie poświadczyć naszej aplikacji o najnowszych aktualizacjach systemu Windows 8.1 i musieliśmy użyć czystej instalacji systemu Windows 8.1, aby uzyskać WACK pomyślnie Zatwierdź wszystkie nasze programy.

 46
Author: Pierre Arnaud,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-06 05:44:40

Szukam od jakiegoś czasu, więc podzielę się tym, co do tej pory znalazłem.

Nie znalazłem żadnej dokumentacji na temat tej funkcji w Windows 8 od Microsoftu, ale może po prostu szukam w niewłaściwych miejscach.

Większość artykułów, które czytałem, omawia, że filtr SmartScreen działa w następujący sposób:

  • przed uruchomieniem Instalatora lub pliku wykonywalnego, który został pobrany, Windows 8 konsultuje się z bazą danych.
  • baza danych może raportować, czy dany program ma been:
      [7]}zgłoszony jako złośliwy / phishing (i zweryfikowany przez pracownika firmy Microsoft).
  • używany/prowadzony przez wiele osób.

Jeśli wystarczająco dużo osób uruchomiło ten instalator, bez zgłaszania go jako złośliwego, w końcu program zostanie oznaczony jako bezpieczny, a inni użytkownicy nie otrzymają irytującego komunikatu.

Niektóre źródła: (tutaj) (tutaj )

Informacje wysyłane do Microsoft, gdy użytkownik instaluje program, zawierają adres IP, a hash instalatora i podpisu cyfrowego oraz ewentualnie nazwę pliku aplikacji. ( zobacz tutaj )

Pracownicy firmy Microsoft mieliby bezpośredni dostęp do bazy danych, aby dodawać i oznaczać bezpieczne wszystkie aplikacje firmy Microsoft.

Być może Microsoft przygotował sposób wstępnej certyfikacji instalatora, jeśli nie, możesz po prostu poczekać, aż wystarczająca liczba osób uruchomi instalator. (ale nie wiem, ile to będzie).

 14
Author: Xantix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-07 06:03:13

Właśnie przeszedłem przez ten proces, i dodam kilka ciekawostek informacji do tego.

1) Pobierz EV. Warto. Następnym razem, gdy uaktualnisz swoje certyfikaty, zaktualizuj je do certyfikatu EV. Cena jest o $100 więcej rocznie. Certyfikaty EV są uważane za bezpieczniejsze, ponieważ trudniej je ukraść. Po wydaniu użytkownikowi zostanie wydany sprzętowy token, aby wypełnić znak. Niestety, znak końcowy nie jest kompatybilny z automated builds.

To nie brzmi okropnie. Dostarczą Ci drugi certyfikat do podpisania plików wykonywalnych (wewnątrz instalatora), który pozostaje kompatybilny z automatyzacją. Podpis w instalatorze musi być podpisany w połączeniu z tokenem sprzętowym.

2) Jeśli nie chcesz uzyskać certyfikatu EV, potrzebujesz reputacji. W przypadku aktualizacji Microsoft przeniesie reputację ze starego certyfikatu na nowy. Musisz skontaktować się z Pomocą techniczną MSDN, a za około tydzień będzie załatwione. Złożyłem moje stare i nowe instalatory-ze starymi i nowymi certyfikatami - i oni to naprawili.

3) jeśli jest to twój pierwszy certyfikat, utkniesz z SmartScreen, dopóki nie otrzymasz reputacji. Prawdopodobnie powinieneś uzyskać certyfikat aplikacji poprzez sysdev.microsoft.com. ale tak naprawdę nie wiadomo, ile plików do pobrania potrzebujesz, zanim zdobędziesz pozytywną reputację w firmie Microsoft.

To moje doświadczenie.

 10
Author: Lompican,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-06 03:53:28

Ponieważ Windows 8.1 jest już nieaktualny.

  • Microsoft wyłączył wszystkie standardowe Certyfikaty podpisywania kodu, aby były zaufane, gdy pobierasz je przez internet na komputer i próbujesz je zainstalować, ale standardowa aplikacja certyfikatów podpisywania kodu działa, jeśli rozpowszechniasz aplikację przez USB lub CD-ROM.

  • Nie używaj signtool.exe, aby zweryfikować (signtool.exe verify /pa mysetup.exe pokaże sukces, ale nie powiedzie się, gdy inni użytkownicy będą go pobrać i spróbować zainstalować SmartScreen popup będzie zachować wyświetlanie)

Użyj Windows App Certification Kit (WACK)

Tutaj wpisz opis obrazka

  • te standardowe certyfikaty podpisywania kodu są martwe. Oznacza to, że jeśli masz standardowy certyfikat podpisywania kodu, nie będzie on już działał niezawodnie, tak jak w przeszłości, nawet jeśli Windows App Certification Kit (WACK) pokazuje przepustkę z ostrzeżeniem, nie oznacza to 100% sukcesu weryfikacji

Tutaj wpisz opis obrazka

Musisz kupić certyfikat EV ( https://www.globalsign.com/en/code-signing/)

Więc, aby odnieść 100% sukcesu, postępuj zgodnie z karmą łyżeczkową:

Krok 1: Przejdź do https://sysdev.microsoft.com i login

A) Utwórz konto firmowe > next

B) Pobierz winqual.plik exe, który jest plikiem zip dostarczonym przez microsoft, teraz podpisz winqual.exe ze standardowym certyfikatem lub certyfikatem EV, a następnie kliknij przycisk Dalej, aby przesłać plik do walidacji.

W moim przypadku nie powiodło się, ponieważ mam standardowy certyfikat, na który Microsoft przestaje zezwalać. Więc wszystko, co musisz teraz zrobić, to kupić licencję EV, w przeciwnym razie masz przerąbane i możesz spędzić całe życie rozwiązując ten problem bez żadnego pojęcia.

Tutaj wpisz opis obrazka

 5
Author: YumYumYum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-15 23:47:08

Przetestowałem rozwiązanie EV cert i działa.

Niestety, wspomnę również, że certy EV są niezgodne z TeamBuild, który wykonuje podpisywanie w kontekście usługi. Certyfikaty EV wymagają tokena sprzętowego, który łączy się z dostawcą usług Kryptograficznych dostarczanym przez SafeNet, Inc do użytku ze wszystkimi autoryzowanymi dostawcami certyfikatów EV (VeriSign i DigiCert).

Podczas podpisywania sterowniki z Safenet zapytają o hasło, które jest nieco niezgodny z realizacją w kontekście usługi. Dodatkowo Safenet zapewnia ochronę, która zapobiega podpisywaniu z niczego poza rzeczywistą konsolą. Nie można nawet zalogować się z poziomu sesji pulpitu zdalnego. Tak więc podpisywanie z poziomu Teambuild jest w najlepszym przypadku problematyczne, a w najgorszym niemożliwe.

Pracowałem z firmą Microsoft i nie byli w stanie zapewnić obejścia problemu podpisywania lub jakiegokolwiek innego sposobu osiągnięcia natychmiastowej reputacji w ramach SmartScreen.

 4
Author: Chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-30 16:58:11

Niestety nie mam dość rep, aby po prostu skomentować jedną z powyższych odpowiedzi. Jeśli jednak określisz częściowe zaufanie dla opublikowanej aplikacji (wybrałem strefę internetową) i posiadasz certyfikat podpisywania kodu, nie zostanie wyświetlone ostrzeżenie o inteligentnym ekranie (zaznaczone na Win10).

 1
Author: Daniel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-24 12:34:14

Podpisuję swoją aplikację w sposób zautomatyzowany za pomocą certyfikatu EV na tokenie (GlobalSign). Użyj a .plik bat. w ".bat " plik, Typ ex: (dla 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"
"Dokładna nazwa przedsiębiorstwa w tokenie cert" powinna być dokładną nazwą znajdującą się w certyfikacie ( tokenie)
 1
Author: Luciano Arruda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-14 17:29:22

"Wersja pliku nie jest zgodna z uruchomioną wersją systemu windows". Pod Windows 2008 server nie ma przycisku "Więcej informacji", aby wybrać instalację i tak.

Gdy tworzymy oprogramowanie komputerowe dla systemu windows (nie "Aplikacje") przy użyciu produktów innych niż Microsoft (Delphi) i używamy Innosetup dla naszego instalatora, Walidacja aplikacji nie ma znaczenia. Siedzi tam przez 30 minut nic nie robiąc, po prostu uruchamiamy aplikację, a następnie ręcznie zamykamy aplikację i generuje przepustkę raport.

Podpisujemy wszystkie nasze wydania i każdy plik wykonywalny w nich zawarty.

Kiedy przesyłamy XML do Microsoft, certyfikowany XML znajduje się na stronie niezwiązanej z naszym głównym kontem dewelopera, bez możliwości opublikowania go w Sklepie Microsoft Store. 45 minut straconych na aplikację.

 0
Author: Simon Carter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-01 06:13:00