Jak przekazać inteligentny ekran na Win8 podczas instalowania podpisanej aplikacji?

80

Jesteśmy programistami i mamy instalator aplikacji z podpisem cyfrowym. Kiedy instalujemy tę aplikację, wyskakuje ona na inteligentnym ekranie, co wpływa na proces instalacji. To mówi

Windows chronił Twój komputer

Windows SmartScreen uniemożliwił uruchomienie nierozpoznanej aplikacji. Uruchomienie tej aplikacji może spowodować zagrożenie dla komputera.

Myślę, że Microsoft ma inną strategię weryfikacji aplikacji poza podpisem cyfrowym. Czy ktoś ma doświadczenie z tym problemem i proszę o wskazówki, jak rozwiązać ten problem?

Howard
źródło

Odpowiedzi:

47

Jeśli podpisałeś instalator zakupionym certyfikatem z CA, powinieneś skontaktować się z CA w celu wyjaśnienia, dlaczego nie współpracowali z firmą Microsoft, aby pozbyć się tego ostrzeżenia.

Jeśli certyfikat nie pochodzi z urzędu certyfikacji, ale certyfikat z podpisem własnym, należy skorzystać z urzędu certyfikacji.

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

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

Najlepsze praktyki

Programiści powinni nadal postępować zgodnie z najlepszymi praktykami, które sugerowaliśmy w poprzednich postach na blogu. Do tych wskazówek dodaliśmy dodatkowe opcje dystrybucji aplikacji przez Sklep Windows oraz opcję podpisywania kodu EV:

  • Rozpowszechniaj swoje aplikacje za pośrednictwem Sklepu Windows

Aplikacje systemu Windows 8 są wymagane do przejścia procesu dołączania deweloperów do Sklepu Windows i procesu przeglądu aplikacji. Aplikacje systemu Windows 8 nie są objęte zakresem kontroli reputacji aplikacji SmartScreen ani ostrzeżeń w systemie Windows 8.

  • Cyfrowe podpisywanie programów (podpisywanie kodu standardowego lub elektrycznego)

Reputacja jest generowana i przypisywana do certyfikatów cyfrowych oraz określonych plików. Certyfikaty cyfrowe umożliwiają agregowanie danych i przypisywanie ich do pojedynczego certyfikatu, a nie do wielu indywidualnych programów. Chociaż nie jest to wymagane, programy podpisane certyfikatem do podpisywania kodu EV mogą natychmiast ustanowić reputację dzięki usługom reputacyjnym SmartScreen, nawet jeśli nie istnieje wcześniejsza reputacja tego pliku lub wydawcy. Certyfikaty do podpisywania kodów pojazdów elektrycznych mają również unikalny identyfikator, który ułatwia utrzymanie reputacji podczas odnawiania certyfikatów. Tylko certyfikaty Authenticode wydane przez urząd certyfikacji będący członkiem programu certyfikatów głównych systemu Windows mogą ustalić reputację.

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

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

Rozpowszechnianie kodu wykrytego jako złośliwy usunie reputację z pliku, a także reputację z powiązanego certyfikatu cyfrowego - nawet jeśli jest on podpisany certyfikatem podpisującym kod EV.

  • Wystąp o logo Windows lub certyfikat aplikacji komputerowej Windows 8

Dowiedz się więcej o tych programach tutaj: Certyfikacja aplikacji komputerowej systemu Windows 8 (wymagana w przypadku przesyłania do Sklepu Windows) Program Logo systemu Windows

Lex Li
źródło
„Jeśli certyfikat nie pochodzi z urzędu certyfikacji, ale jest certyfikatem z podpisem własnym, będziesz musiał skorzystać z urzędu certyfikacji”. Z jakich źródeł przychodów hobbysta lub mikro-ISV powinien odzyskać około 110 USD opłaty rocznej pobieranej przez CA?
Damian Yerrick
1
„Jak wspominaliśmy w przeszłości, SmartScreen buduje reputację zarówno dla poszczególnych programów, jak i dla certyfikatu używanego do podpisywania tego kodu”. Cytat z połączonego wpisu na blogu firmy Microsoft. Wiele projektów open source opiera się na ich reputacji, a jeśli chcesz się podpisać, możesz poprosić o sponsoring w celu pokrycia opłat.
Lex Li
48

Właśnie przeszliśmy przez cały proces przechodzenia ze starego certyfikatu Authenticode na nowy (nie jest to certyfikat EV, tylko zwykły certyfikat, którego można użyć w naszym automatycznym procesie budowania).

Firma Microsoft nie zapewnia już żadnych środków przenoszenia reputacji z istniejącego certyfikatu na nowy. Więc nie próbuj wzywać ich wsparcia. Po prostu stracisz dużo czasu i energii. I nie będą w stanie pomóc.

Microsoft twierdzi, że jeśli stare i nowe certyfikaty mają taką samą zawartość tekstową, reputacja zostanie ustalona szybciej. Dokładniej, oto odpowiedź, którą otrzymałem od zespołu pomocy technicznej ds. Funkcji Application Reputation filtra SmartScreen® :

Pamiętaj, że za każdym razem, gdy odnawiasz certyfikat o znanej reputacji, prawdopodobnie zobaczysz ostrzeżenia podczas wstępnego pobierania plików podpisanych odnowionym certyfikatem. Jednak znana reputacja odnowionego certyfikatu jest zazwyczaj ustalana szybciej niż w przypadku nowego certyfikatu. Podczas gdy odnowiony certyfikat zapewnia reputację, użytkownicy nadal mogą kliknąć, aby uruchomić lub zapisać pobieranie. Aby to zrobić, wybierają Działania | Więcej opcji | Uruchom mimo to z Menedżera pobierania.

Najlepszym sposobem, aby upewnić się, że SmartScreen nie ostrzega użytkowników, jest uruchomienie zestawu certyfikacji aplikacji systemu Windows (WACK), który powinien być dołączony do pakietu Windows SDK do pobrania:

Zestaw certyfikacji aplikacji systemu Windows

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

Raport końcowy - walidacja zakończona

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 w certyfikowanym programie i nie będzie już ostrzegać użytkowników przy pobieraniu.

Uwaga Nie byliśmy w stanie poświadczyć naszej aplikacji najnowszych aktualizacji systemu Windows 8.1 i musieliśmy użyć czystej instalacji systemu Windows 8.1, aby WACK pomyślnie zweryfikował wszystkie nasze programy.

Pierre Arnaud
źródło
15
Chciałbym wspomnieć, że ukończenie tego procesu zajęło mi około 2 godzin (może trochę więcej). Nie jestem pewien, czy rozmiar projektu ma znaczenie, ale nie jest to 2-minutowy proces.
leigero
9
Wygląda na to, że firma MS wycofała sysdev.microsoft.com. Czy wiesz, gdzie teraz przesłać plik?
Shchvova
3
Wygląda na to, że firma MS wycofała sysdev.microsoft.com. Czy wiesz, gdzie teraz przesłać plik?
Phoenix,
2
Zamiast tego prześlij pliki tutaj: microsoft.com/en-us/wdsi/filesubmission
Rami A.
15

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

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

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

  • Przed uruchomieniem pobranego instalatora lub pliku wykonywalnego system Windows 8 konsultuje się z bazą danych.
  • Baza danych może raportować, czy ten program był:
    • zgłoszone jako złośliwe / wyłudzające informacje (i zweryfikowane przez pracownika firmy Microsoft).
    • używany / prowadzony przez wiele osób.

Jeśli wystarczająca liczba osób uruchomi ten instalator bez zgłaszania go jako złośliwego, ostatecznie ten program zostanie oznaczony jako bezpieczny, a inni użytkownicy nie otrzymają irytującej wiadomości.

kilka źródeł: ( tutaj ) ( tutaj )

Informacje wysyłane do firmy Microsoft, gdy użytkownik instaluje program, obejmują adres IP, skrót instalatora i podpis cyfrowy oraz ewentualnie nazwę pliku aplikacji. ( patrz tutaj )

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

Być może firma Microsoft przygotowała sposób na wstępne poświadczenie swojego instalatora za ich pomocą, jeśli nie, być może wystarczy poczekać, aż wystarczająca liczba osób uruchomi instalator. (ale nie jestem pewien, ile to będzie).

Xantix
źródło
Link do log.nadim.cc/?p=78jest uszkodzony i nawet Way Back Machine nie ujawnia żadnych treści. Czy są jakieś alternatywne lokalizacje treści?
Uwe Keim
11

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

1) Zdobądź EV. To jest tego warte. Następnym razem, gdy zaktualizujesz swoje certyfikaty, przejdź na certyfikat EV. Cena wynosi około 100 USD więcej rocznie. Certyfikaty EV są uważane za bezpieczniejsze, ponieważ trudniej je ukraść. Po wydaniu Tobie zostanie wydany token sprzętowy w celu uzupełnienia znaku. Niestety ostateczny znak nie jest zgodny z automatycznymi kompilacjami.

To nie jest tak straszne, jak się wydaje. Zapewnią ci drugi certyfikat do podpisywania plików wykonywalnych (wewnątrz instalatora), który pozostaje zgodny z automatyzacją. Podpis na instalatorze musi być podpisany w połączeniu z tokenem sprzętowym.

2) Jeśli nie chcesz otrzymać certyfikatu EV, potrzebujesz reputacji. Jeśli przeprowadzasz aktualizację, firma Microsoft przeniesie reputację ze starego certyfikatu na nowy. Musisz skontaktować się z pomocą techniczną MSDN, a za około tydzień będzie to zrobione. Przesłałem moich starych i nowych instalatorów - ze starymi i nowymi certyfikatami - a oni to naprawili.

3) Jeśli jest to Twój pierwszy certyfikat, utkniesz z SmartScreen, dopóki nie uzyskasz reputacji. Prawdopodobnie powinieneś uzyskać certyfikat swojej aplikacji za pośrednictwem sysdev.microsoft.com. Ale tak naprawdę nie wiadomo, ile pobrań potrzebujesz, zanim zdobędziesz pozytywną reputację w firmie Microsoft.

To jest moje doświadczenie.

Lompican
źródło
3
Czy mógłbyś mi powiedzieć, gdzie przesłać aplikację, aby przenieść reputację mojego starego certyfikatu?
CITBL
1
Użyłem mojej subskrypcji MSDN, aby wysłać prośbę o pomoc programisty.
Lompican,
2
Właśnie przeszedłem przez cały proces z firmą Microsoft. Najwyraźniej pomoc techniczna MSDN nie zapewnia już żadnej pomocy w tym temacie. Naprawdę musisz zdobyć reputację , aby ostrzeżenia SmartScreen zniknęły . Najprościej byłoby zweryfikować swoją aplikację za pomocą zestawu Windows App Cert Kit, a następnie przesłać wyniki do sysdev.microsoft.com.
Pierre Arnaud
Czy pojazdy elektryczne są dostępne nawet dla osób fizycznych, w przeciwieństwie do korporacji? A jakie kroki powinien podjąć hobbysta, żeby zebrać pieniądze na jednego?
Damian Yerrick
5

Ponieważ Windows 8.1 jest niedostępny.

  • Firma Microsoft dezaktywowała wszystkie certyfikaty standardowego podpisywania kodu, aby były zaufane, gdy pobierasz je przez Internet na swój komputer i próbujesz je zainstalować, ale aplikacja Standardowe certyfikaty podpisywania kodu działa, jeśli rozpowszechniasz swoją aplikację przez USB lub CD-ROM.

  • Nie używaj signtool.exedo weryfikacji ( signtool.exe verify /pa mysetup.exepokaże sukces, ale zakończy się niepowodzeniem, gdy inni użytkownicy go pobiorą i spróbują zainstalować wyskakujące okienko SmartScreen)

Użyj zestawu certyfikacji aplikacji systemu Windows (WACK)

wprowadź opis obrazu tutaj

  • Te standardowe certyfikaty do podpisywania kodu są martwe. Oznacza to, że jeśli masz standardowy certyfikat do podpisywania kodu, nie będzie on już działał niezawodnie, jak w przeszłości, mimo że zestaw certyfikacji aplikacji systemu Windows (WACK) pokazuje PASS z OSTRZEŻENIEM, nie oznacza to 100% sukcesu weryfikacji

wprowadź opis obrazu tutaj

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

Aby więc odnieść 100% sukcesu, postępuj zgodnie z karmieniem łyżką:

Krok 1: przejdź do https://sysdev.microsoft.com i zaloguj się

a) Utwórz konto firmowe> dalej

b) Pobierz plik winqual.exe jako plik zip dostarczony przez firmę Microsoft, teraz podpisz plik winqual.exe swoim standardowym certyfikatem lub certyfikatem EV, a następnie kliknij przycisk Dalej, aby przesłać plik do weryfikacji.

W moim przypadku nie udało się, ponieważ mam standardowy certyfikat, na który Microsoft już nie 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 na rozwiązaniu tego problemu bez żadnych wskazówek.

wprowadź opis obrazu tutaj


źródło
4
To jest dla rozwoju sterowników.
crea7 lub
Więc każdy musi kupić ten certyfikat, który kosztuje 290 dolarów rocznie, aby uniknąć smartscreen?
user3304007
4

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

Ze smutkiem wspomnę również, że certyfikaty EV są niekompatybilne 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 będą pytać o hasło, które jest nieco niekompatybilne z wykonywaniem w kontekście usługi. Dodatkowo Safenet zapewnia ochronę, która uniemożliwia podpisywanie z niczego innego niż rzeczywista konsola. Nie możesz nawet podpisać się z sesji zdalnego pulpitu. Tak więc podpisywanie z poziomu Teambuild jest w najlepszym przypadku problematyczne, aw najgorszym niemożliwe.

Współpracowałem z firmą Microsoft i firma Microsoft nie była w stanie zapewnić obejścia dla podpisywania lub żadnego innego sposobu na uzyskanie natychmiastowej reputacji w ramach SmartScreen.

Chris
źródło
1

Niestety nie mam wystarczającej liczby przedstawicieli, 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 masz ustawiony certyfikat do podpisywania kodu, nie zostanie wyświetlone żadne ostrzeżenie na ekranie inteligentnym (zaznaczone w systemie Win10).

Daniel
źródło
1

Podpisuję swoją aplikację w sposób zautomatyzowany za pomocą certyfikatu EV na tokenie (GlobalSign). Użyj pliku .bat. w pliku „.bat” wpisz 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 certyfikatu” powinna być dokładną nazwą zawartą w certyfikacie (tokenie)

Luciano Arruda
źródło
1
Czy spowodowało to usunięcie okna dialogowego smartscreen?
user3304007
0

„Wersja pliku nie jest zgodna z wersją używanego systemu Windows”. Na serwerze Windows 2008 nie ma przycisku „Więcej informacji”, który można by mimo wszystko wybrać.

Ponieważ tworzymy oprogramowanie komputerowe dla systemu Windows (nie „Aplikacje”) przy użyciu produktów firm innych niż Microsoft (Delphi) i używamy programu Innosetup w naszym instalatorze, sprawdzanie poprawności aplikacji jest bez znaczenia. Jest tam przez 30 minut, nic nie robiąc, po prostu uruchamiamy aplikację, a następnie zamykamy ją ręcznie, a ona generuje raport o zaliczeniu.

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

Gdy przesyłamy plik XML do firmy Microsoft, certyfikowany plik XML znajduje się w witrynie niepowiązanej z naszym głównym kontem programisty, bez możliwości opublikowania go w sklepie Microsoft Store. 45 minut na aplikację.

Simon Carter
źródło