Wie übergebe ich den Smart Screen unter Win8, wenn ich eine signierte Anwendung installiere?

79

Wir sind Entwickler und haben ein digital signiertes Anwendungsinstallationsprogramm. Wenn wir diese Anwendung installieren, wird der Smart-Bildschirm angezeigt, der sich auf die Installationserfahrung auswirkt. Es sagt

Windows hat Ihren PC geschützt

Windows SmartScreen hat den Start einer nicht erkannten App verhindert. Das Ausführen dieser App kann Ihren PC gefährden.

Ich denke, Microsoft hat eine Strategie, um die Anwendung neben der digitalen Signatur zu überprüfen. Hat jemand die Erfahrung für dieses Problem und bitte geben Sie mir einen Hinweis, um dieses Problem zu beheben?

Howard
quelle

Antworten:

47

Wenn Sie das Installationsprogramm mit einem von einer Zertifizierungsstelle gekauften Zertifikat signiert haben, sollten Sie sich an die Zertifizierungsstelle wenden, um zu erläutern, warum diese nicht mit Microsoft zusammengearbeitet hat, um diese Warnung zu entfernen.

Wenn das Zertifikat nicht von einer Zertifizierungsstelle stammt, sondern von einem selbstsignierten Zertifikat, müssen Sie auf eine Zertifizierungsstelle zurückgreifen.

Microsoft hat die meisten Informationen bereits in seinem Windows-Teamblog veröffentlicht.

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

Empfohlene Vorgehensweise

Entwickler sollten weiterhin die Best Practices befolgen, die wir in früheren Blog-Posts vorgeschlagen haben. Wir haben dieser Anleitung die zusätzlichen Optionen zum Verteilen von Apps über den Windows Store und die Option zum Signieren von EV-Code hinzugefügt:

  • Verteilen Sie Ihre Apps über den Windows Store

Windows 8-Anwendungen sind erforderlich, um den Onboarding- und Anwendungsüberprüfungsprozess des Windows Store-Entwicklers zu bestehen. Windows 8-Anwendungen sind in Windows 8 nicht für die Überprüfung oder Warnung von SmartScreen-Anwendungen vorgesehen.

  • Signieren Sie Ihre Programme digital (Standard- oder EV-Codesignatur)

Reputation wird generiert und digitalen Zertifikaten sowie bestimmten Dateien zugewiesen. Mit digitalen Zertifikaten können Daten aggregiert und einem einzelnen Zertifikat zugewiesen werden, anstatt vielen einzelnen Programmen. Obwohl dies nicht erforderlich ist, können Programme, die mit einem EV-Codesignaturzertifikat signiert sind, sofort eine Reputation bei SmartScreen-Reputationsdiensten herstellen, selbst wenn für diese Datei oder diesen Herausgeber keine vorherige Reputation besteht. EV-Codesignaturzertifikate haben auch eine eindeutige Kennung, die es einfacher macht, die Reputation bei Zertifikatserneuerungen aufrechtzuerhalten. Nur Authenticode-Zertifikate, die von einer Zertifizierungsstelle ausgestellt wurden, die Mitglied des Windows-Stammzertifizierungsprogramms ist, können die Reputation herstellen.

Derzeit bieten Symantec und DigiCert EV-Codesignaturzertifikate an.

  • Unterschreiben oder verbreiten Sie keinen schädlichen Code

Durch das Verteilen von als bösartig erkanntem Code wird die Reputation aus einer Datei und auch jede Reputation aus dem zugehörigen digitalen Zertifikat entfernt - selbst wenn sie mit einem EV-Codesignaturzertifikat signiert ist.

  • Beantragen Sie ein Windows-Logo oder eine Windows 8 Desktop App-Zertifizierung

Weitere Informationen zu diesen Programmen finden Sie hier: Windows 8 Desktop App-Zertifizierung (für Windows Store-Übermittlungen erforderlich) Windows-Logo-Programm

Lex Li
quelle
"Wenn das Zertifikat nicht von einer Zertifizierungsstelle stammt, sondern von einem selbstsignierten Zertifikat, müssen Sie auf eine Zertifizierungsstelle zurückgreifen." Über welche Einnahmequellen sollte ein Bastler oder Mikro-ISV die von CAs erhobene Gebühr von ca. 110 USD pro Jahr zurückerhalten?
Damian Yerrick
1
"Wie wir in der Vergangenheit besprochen haben, baut SmartScreen sowohl für einzelne Programme als auch für das Zertifikat, mit dem dieser Code signiert wird, einen guten Ruf auf." Zitiert aus dem verlinkten Microsoft-Blogbeitrag. Viele Open-Source-Projekte verlassen sich auf ihren Ruf, und Sie können auch um Sponsoring bitten, um die Gebühren zu decken, wenn Sie unterschreiben möchten.
Lex Li
48

Wir haben gerade den gesamten Prozess des Wechsels von einem alten Authenticode-Zertifikat zu einem neuen durchlaufen (kein EV-Zertifikat, sondern nur ein einfaches Zertifikat, das in unserem automatisierten Erstellungsprozess verwendet werden kann).

Microsoft bietet keine Möglichkeit mehr, die Reputation von einem vorhandenen Zertifikat auf ein neues zu übertragen. Versuchen Sie also nicht, ihren Support anzurufen. Sie verschwenden nur viel Zeit und Energie. Und sie werden nicht helfen können.

Microsoft behauptet, dass die Reputation schneller hergestellt wird, wenn das alte und das neue Zertifikat denselben Textinhalt haben. Im Folgenden finden Sie die Antwort, die ich vom Support-Team für Anwendungsreputation des SmartScreen®-Filters erhalten habe :

Bitte beachten Sie, dass bei jeder Erneuerung eines Zertifikats mit bekanntem Ruf beim ersten Herunterladen von Dateien, die mit dem erneuerten Zertifikat signiert wurden, wahrscheinlich einige Warnungen angezeigt werden. Die bekannte Reputation auf dem erneuerten Zertifikat wird jedoch in der Regel schneller hergestellt als auf einem neuen Zertifikat. Während ein erneuertes Zertifikat die Reputation festlegt, können Benutzer dennoch durchklicken, um den Download auszuführen oder zu speichern. Dazu wählen sie Aktionen | Weitere Optionen | Führen Sie den Download-Manager trotzdem aus.

Der beste Weg, um sicherzustellen, dass SmartScreen die Benutzer nicht warnt, besteht darin, das Windows App Certification Kit (WACK) auszuführen, das im Windows SDK-Download enthalten sein sollte:

Windows App Certification Kit

Nach dem Ausführen der Tests erklärt WACK, wie es weitergeht:

Abschlussbericht - Validierung bestanden

Laden Sie das XML-Ergebnis einer erfolgreichen Anwendungszertifizierung auf https://sysdev.microsoft.com hoch . Einige Tage später wird SmartScreen die für das zertifizierte Programm verwendete digitale Signatur kennen und die Benutzer beim Herunterladen nicht mehr warnen.

Hinweis Wir konnten unsere Anwendung nicht für die neuesten Updates von Windows 8.1 zertifizieren und mussten eine Neuinstallation von Windows 8.1 verwenden, damit WACK alle unsere Programme erfolgreich validieren konnte.

Pierre Arnaud
quelle
15
Ich möchte erwähnen, dass dieser Vorgang ungefähr 2 Stunden (vielleicht etwas länger) gedauert hat. Ich bin nicht sicher, ob die Größe des Projekts ein Faktor ist, aber dies ist kein 2-minütiger Prozess.
Leigero
8
Es scheint, dass MS sysdev.microsoft.com in den Ruhestand versetzt hat. Wissen Sie, wo Sie die Datei jetzt hochladen können?
Shchvova
2
Es scheint, dass MS sysdev.microsoft.com in den Ruhestand versetzt hat. Wissen Sie, wo Sie die Datei jetzt hochladen können?
Phoenix
2
Senden Sie
Rami A.
15

Ich habe eine Weile gesucht, also werde ich teilen, was ich bisher gefunden habe.

Ich habe keine Dokumentation zu dieser Funktion in Windows 8 von Microsoft gefunden, aber ich suche möglicherweise nur an den falschen Stellen.

In den meisten Artikeln, die ich lese, wird beschrieben, dass der SmartScreen-Filter wie folgt funktioniert:

  • Vor dem Ausführen eines Installationsprogramms oder einer ausführbaren Datei, die heruntergeladen wurde, konsultiert Windows 8 eine Datenbank.
  • Die Datenbank kann melden, ob dieses Programm:
    • als bösartig / phishing gemeldet (und von einem Microsoft-Mitarbeiter überprüft).
    • von vielen Menschen benutzt / betrieben.

Wenn genügend Benutzer dieses Installationsprogramm ausgeführt haben, ohne es als bösartig zu melden, wird dieses Programm möglicherweise als sicher gekennzeichnet, und andere Benutzer erhalten die nervige Nachricht nicht.

einige Quellen: ( hier ) ( hier )

Die Informationen, die an Microsoft gesendet werden, wenn ein Benutzer ein Programm installiert, umfassen die IP-Adresse, einen Hash des Installationsprogramms und die digitale Signatur sowie möglicherweise den Dateinamen der Anwendung. ( siehe hier )

Microsoft-Mitarbeiter hätten direkten Zugriff auf die Datenbank, um alle Microsoft-Anwendungen hinzuzufügen und als sicher zu kennzeichnen.

Möglicherweise hat Microsoft eine Möglichkeit eingerichtet, Ihr Installationsprogramm vorab zu zertifizieren. Andernfalls müssen Sie möglicherweise nur warten, bis genügend Benutzer das Installationsprogramm ausführen. (aber nicht sicher, wie viele das sein würden).

Xantix
quelle
Der Link zu log.nadim.cc/?p=78ist unterbrochen und selbst die Way Back Machine zeigt keinen Inhalt an. Gibt es alternative Speicherorte für den Inhalt?
Uwe Keim
11

Ich habe gerade diesen Prozess durchlaufen und werde dem ein paar Informationen hinzufügen.

1) Holen Sie sich einen EV. Das ist es wert. Aktualisieren Sie beim nächsten Upgrade Ihrer Zertifikate auf ein EV-Zertifikat. Der Preis beträgt ca. 100 USD mehr pro Jahr. EV-Zertifikate gelten als sicherer, da sie schwerer zu stehlen sind. Bei der Ausstellung erhalten Sie ein Hardware-Token-Gerät, um das Zeichen zu vervollständigen. Leider ist das letzte Zeichen nicht mit automatisierten Builds kompatibel.

Es ist nicht so schrecklich, wie es sich anhört. Sie erhalten ein zweites Zertifikat zum Signieren Ihrer ausführbaren Dateien (im Installationsprogramm), das weiterhin mit der Automatisierung kompatibel ist. Die Signatur auf dem Installationsprogramm muss in Verbindung mit dem Hardware-Token signiert werden.

2) Wenn Sie kein EV-Zertifikat erhalten möchten, benötigen Sie einen guten Ruf. Wenn Sie ein Upgrade durchführen, überträgt Microsoft die Reputation von Ihrem alten Zertifikat auf Ihr neues. Sie müssen sich an den technischen Support von MSDN wenden. In ungefähr einer Woche ist dies erledigt. Ich habe meine alten und neuen Installer - mit alten und neuen Zertifikaten - eingereicht und sie haben es behoben.

3) Wenn dies Ihr erstes Zertifikat ist, bleiben Sie bei SmartScreen, bis Sie einen guten Ruf erhalten. Sie sollten Ihre App wahrscheinlich über sysdev.microsoft.com zertifizieren lassen. Es ist jedoch nicht wirklich bekannt, wie viele Downloads Sie benötigen, bevor Sie sich bei Microsoft einen guten Ruf erarbeiten.

Das ist meine Erfahrung.

Lompican
quelle
3
Könnten Sie mir bitte sagen, wo ich eine App einreichen soll, um den Ruf meines alten Zertifikats zu übertragen?
CITBL
1
Ich habe mein MSDN-Abonnement verwendet, um eine Entwickler-Support-Anfrage zu stellen.
Lompican
2
Ich habe gerade den gesamten Prozess mit Microsoft durchlaufen. Anscheinend bietet der technische Support von MSDN keine Unterstützung mehr zu diesem Thema. Sie müssen wirklich einen guten Ruf aufbauen , damit die SmartScreen- Warnungen verschwinden . Am einfachsten wäre es, Ihre App mit dem Windows App Cert Kit zu überprüfen und die Ergebnisse dann auf sysdev.microsoft.com hochzuladen.
Pierre Arnaud
Sind Elektrofahrzeuge im Gegensatz zu Unternehmen überhaupt für Einzelpersonen verfügbar? Und welche Schritte sollte ein Bastler unternehmen, um das Geld für einen zu sammeln?
Damian Yerrick
5

Da ist Windows 8.1 raus.

  • Microsoft hat alle Standard-Codesignaturzertifikate deaktiviert, um vertrauenswürdig zu sein, wenn Sie sie über das Internet auf Ihren PC herunterladen und versuchen, sie zu installieren. Die Anwendung Standard-Codesignaturzertifikate funktioniert jedoch, wenn Sie Ihre Anwendung über USB oder CD-ROM verteilen.

  • Verwenden Sie das nicht, um signtool.exezu überprüfen ( signtool.exe verify /pa mysetup.exewird erfolgreich angezeigt, aber es schlägt fehl, wenn andere Benutzer es herunterladen und versuchen, ein SmartScreen-Popup zu installieren, das weiterhin angezeigt wird).

Verwenden Sie das Windows App Certification Kit (WACK).

Geben Sie hier die Bildbeschreibung ein

  • Diese Standard-Codesignaturzertifikate sind tot. Wenn Sie über ein Standard-Codesignaturzertifikat verfügen, funktioniert es nicht mehr so ​​zuverlässig wie in der Vergangenheit, obwohl das Windows App Certification Kit (WACK) PASS mit WARNUNG anzeigt, bedeutet dies nicht, dass der Erfolg zu 100% überprüft wurde

Geben Sie hier die Bildbeschreibung ein

Sie müssen ein EV-Zertifikat erwerben ( https://www.globalsign.com/de/code-signing/ ).

Um 100% Erfolg zu haben, folgen Sie dem Löffel-Feed:

Schritt 1: Gehen Sie zu https://sysdev.microsoft.com und melden Sie sich an

a) Erstellen Sie ein Firmenkonto> weiter

b) Laden Sie die Datei winqual.exe herunter, die als von Microsoft bereitgestellte Zip-Datei vorliegt. Signieren Sie nun die Datei winqual.exe mit Ihrem Standardzertifikat oder EV-Zertifikat und klicken Sie auf Weiter, um die Datei zur Validierung hochzuladen.

In meinem Fall ist es fehlgeschlagen, weil ich ein Standardzertifikat habe, das Microsoft nicht mehr zulässt. Alles, was Sie jetzt tun müssen, ist, eine EV-Lizenz zu kaufen, sonst sind Sie geschraubt und können Ihr Leben damit verbringen, dieses Problem ohne Anhaltspunkt zu lösen.

Geben Sie hier die Bildbeschreibung ein


quelle
4
Dies ist für die Treiberentwicklung.
crea7or
Also muss jeder dieses Zertifikat kaufen, das 290 US-Dollar pro Jahr kostet, um Smartscreen zu vermeiden?
user3304007
4

Ich habe die EV-Zertifizierungslösung getestet und sie funktioniert.

Leider werde ich auch erwähnen, dass EV-Zertifikate nicht mit TeamBuild kompatibel sind, das das Signieren im Kontext eines Dienstes ausführt. Für EV-Zertifikate ist ein Hardware-Token erforderlich, das mit dem von SafeNet, Inc bereitgestellten Cryptographic Service Provider verbunden ist und von allen autorisierten EV-Zertifizierungsanbietern (VeriSign und DigiCert) verwendet werden kann.

Beim Signieren werden die Treiber von Safenet zur Eingabe eines Kennworts aufgefordert, das mit der Ausführung im Rahmen eines Dienstes nicht kompatibel ist. Darüber hinaus bietet Safenet einen Schutz, der verhindert, dass etwas anderes als die eigentliche Konsole signiert. Sie können nicht einmal innerhalb einer Remotedesktopsitzung signieren. Das Signieren innerhalb von Teambuild ist also bestenfalls problematisch und im schlimmsten Fall nicht möglich.

Ich habe mit Microsoft zusammengearbeitet und sie konnten keine Problemumgehung für das Signieren oder eine andere Möglichkeit bieten, um unter SmartScreen einen sofortigen Ruf zu erlangen.

Chris
quelle
1

Leider habe ich nicht genug Repräsentanten, um einfach eine der obigen Antworten zu kommentieren. Wenn Sie jedoch eine teilweise Vertrauenswürdigkeit für Ihre veröffentlichte App angeben (ich habe die Internetzone ausgewählt) und über ein Codesignaturzertifikat verfügen, wird keine Smart-Screen-Warnung angezeigt (unter Win10 aktiviert).

Daniel
quelle
1

Ich signiere meine Bewerbung automatisiert mit einem EV-Zertifikat auf einem Token (GlobalSign). Verwenden Sie eine .bat-Datei. Geben Sie in die Datei ".bat" ex ein: (Für 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"

Der "Genaue Unternehmensname im Zertifikatstoken" sollte der genaue Name sein, der im Zertifikat (Token) enthalten ist.

Luciano Arruda
quelle
1
Und hat es den Smartscreen-Dialog entfernt?
user3304007
0

"Die Version der Datei ist nicht mit der Version von Windows kompatibel, die Sie ausführen". Unter Windows 2008 Server gibt es ohnehin keine Schaltfläche "Weitere Informationen" zur Installation.

Da wir Windows-Desktopsoftware (nicht "Apps") mit Nicht-Microsoft-Produkten (Delphi) entwickeln und Innosetup für unser Installationsprogramm verwenden, ist die App-Validierung bedeutungslos. Es sitzt dort für 30 Minuten und tut nichts. Wir starten einfach die App, schließen sie dann manuell und generieren einen Passbericht.

Wir signieren alle unsere Releases und alle darin enthaltenen ausführbaren Dateien.

Wenn wir das XML auf Microsoft hochladen, befindet sich das zertifizierte XML auf einer Site, die nicht mit unserem Hauptentwicklerkonto zusammenhängt, und kann nicht im Microsoft Store veröffentlicht werden. Pro Anwendung werden 45 Minuten verschwendet.

Simon Carter
quelle