Laden...

[Gelöst] Signierungsproblem mit ClickOnce-Verteilung (Chrome Download und Smartscreen schlagen an)

Erstellt von emuuu vor 7 Jahren Letzter Beitrag vor 7 Jahren 3.211 Views
emuuu Themenstarter:in
286 Beiträge seit 2011
vor 7 Jahren
[Gelöst] Signierungsproblem mit ClickOnce-Verteilung (Chrome Download und Smartscreen schlagen an)

Guten Tag zusammen,

ich habe ein kleines Problem, an dem ich mittlerweile verzweifle:

-Ich habe eine Anwendung die ich via ClickOnce über eine Website verteile.
-Ich habe ein gültiges CodeSigning-Zertifikat (von Comodo)

Mein Problem ist nun, dass die von ClickOnce generierte Setup.exe sowohl beim Download in Chrome (könnte schädlich sein blabla) als auch im Smartscreen-Filter hängen bleibt.

D.h. das Problem liegt nicht in der Signierung meines Programmes (wenn ich die setup.exe trotz aller Warnung starte läuft es sauber durch und zeigt im Installer auch korrekt den Herausgeber), sondern nur in der setup.exe.

Diese scheint aber auch korrekt signiert zu werden, da wenn ich mir die Signierung der Datei anschaue (rechtsklick -> Eigenschaften -> digitale Signierung) wird das Zertifikat dort auch korrekt angezeigt.

In den Projekteinstellungen ist ClickOnce-Manifestsignierung eingetragen und das Zertifikat auch ausgewählt.

Zum Pre-Publish verwende ich folgendes:

  <Target Name="BeforePublish">
    <Exec Command="&quot;C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe&quot; sign /f &quot;$(ProjectDir)zertifikat.p12&quot; /p tollespasswort 
/v &quot;$(ProjectDir)obj\$(ConfigurationName)\$(TargetFileName)&quot;" />
  </Target>

Ich habe auch schon versucht die setup.exe im Nachhinein mit dem Signtool von kSign zu signieren -> gleiches Problem.

Das einzige was "etwas" bringt ist die Website (welche SSL-gesichert ist) über die die Verteilung läuft via Internetoptionen als vertrauenswürdig zu markieren. Was aber nur den SmartScreen-Filter und nicht Chrome befriedet (zumal es nur ein Workaround und keine Lösung ist).

Irgendwelche Ideen? Oder mache ich was grundsätzliches falsch?

Beste Grüße
Timm

Update:
Aus irgendwelchen Gründen ist es jetzt noch schlimmer. Selbst die Assembly ist jetzt noch signiert wird aber von SmartScreen als potenziell gefährlich eingestuft.

2+2=5( (für extrem große Werte von 2)

16.842 Beiträge seit 2008
vor 7 Jahren

Die Browserwarnung in Chrome erfolgt IIRC nicht live, sondern anhand von Malware Listen.
Das heisst, dass Google eine Liste von Webseiten führt, die einen dubiosen Download hat - die Exe wird gar nicht geprüft.

Über die Webmaster Tools gibt es aber meines Wissens eine Möglichkeit, schädliche Inhalte bzw. die Gründe der Kategorisierung zu finden und darauf zu reagieren.

emuuu Themenstarter:in
286 Beiträge seit 2011
vor 7 Jahren

Da bin ich schon dran und warte gerade darauf, dass der Google-Crawler der Seite einen Besuch abstattet.

Das dürfte aber das Problem nicht lösen. Habe nun IE, Firefox und Chrome getestet, allesamt und der leidige SmartScreen-Filter geben eine Warnung aus. Daher meine Vermutung, dass ich generell etwas falsch mache, wobei ich nicht wüsste was (aber das weiß man wohl nie).

2+2=5( (für extrem große Werte von 2)

16.842 Beiträge seit 2008
vor 7 Jahren

Hilft hier was?
Microsoft SmartScreen & Extended Validation (EV) Code Signing Certificates

Wenn ich das richtig versteh, dann muss nicht nur ein Code Signing Zertifikat sein, sondern ein EV Zertifikat.
Code Signing ist ja schwächer; zB. zum einfachen signieren von DLLs. Exe scheint wohl ein EV zu wollen.

emuuu Themenstarter:in
286 Beiträge seit 2011
vor 7 Jahren

Da bin ich auch schon gelandet, aber ich kann mir irgendwie nicht vorstellen, dass das allein die Lösung sein kann.

Dort steht, dass man sowohl Standard- als auch EV-Zertifikate verwenden kann (sonst wäre der Sinn von Standard-CodeSigning-Zertifikaten = null). und damit eine "Reputation" aufbauen muss.

Das ist natürlich klasse, dass ich mehrere hundert Downloads brauche bevor die Dateien "ok" sind.

Das kann doch nicht die Lösung sein.

2+2=5( (für extrem große Werte von 2)

16.842 Beiträge seit 2008
vor 7 Jahren

Standard Code Signing Zertifikate haben auch ohne die Verwendung von Browsern ihren Sinn, sogar liegt der ursprüngliche Sinn einfach in der Tatsache, dass DLLs in den GAC nur mit Signatur eingelegt werden können.
Die Eindeutigkeit der Herkunft auf dem System ist hier das Ziel gewesen; kein SmartScreen.

emuuu Themenstarter:in
286 Beiträge seit 2011
vor 7 Jahren

Kleines Update:
Irgendwelche schwarze Magie hat nun gewirkt und weder Browser noch Smartscreen-Filter beanstanden die setup.exe (Die Programm.exe auch nicht mehr).

Ich habe eigentlich nichts gemacht außer meine Zeit mit anderen Dingen zu verbringen und im Google-Webmastertool, wo meine Website als "möglicherweise Malware enthaltent" angezeigt wurde, einen Überprüfungsauftrag zu schicken.

Wieso das auch IE, Edge, Firefox und den SmartscreenFilter beeinflussen kann -> wer weiß.

Habe die Dateien zu Sicherheit von einem völlig unbefangenen Rechner heruntergeladen auf dem keines der Zertifikate oder ähnliches installiert ist. Insofern scheint sich das Problem sich von selbst verflüchtigt zu haben und ein Standardcodesigning-Zertifikat ist wohl ausreichend.

2+2=5( (für extrem große Werte von 2)

D
985 Beiträge seit 2014
vor 7 Jahren

So wie ich das verstehe geht es beim SmartScreen etc. um Reputation. Mit einem EV Zertifikat hast du direkt eine höhere Reputation als mit einem normalen CodeSign Zertifikat.

Wenn du über deine WebSite und deinem EV Zertifikat nur Müll verteilst, dann rutscht die Reputation trotzdem gehörig in den Keller, auch wenn das aktuelle Programm jetzt sauber ist.

Und auch mit einem CodeSign Zertifikat kommt man ohne Gemecker durch den SmartScreen durch, wenn die Reputation hoch genug ist (z.B. google sagt nach einer Prüfung: alles ok).

Dass diese Reputationen von unterschiedlichen Stellen kommen und gegenseitig ausgetauscht werden ist im Zeitalter von Internet und Clouds auch kein Hexenwerk mehr.

Also keine schwarze Magie.

emuuu Themenstarter:in
286 Beiträge seit 2011
vor 7 Jahren

Mit der schwarzen Magie ging es mir vor allem darum, dass bisher nur ich vllt 10-15 Downloads und davon vllt 5 Installationen habe laufen lassen.

Das war ja meine Hauptsorge. Da die App nur einem recht geringen Personenkreis zur Verfügung gestellt wird (Signierung aus Richtliniengründen trotzdem nötig), hatte ich befürchtet, dass ich niemals genug Reputation auf dem Zertifikat kriege.

2+2=5( (für extrem große Werte von 2)

D
985 Beiträge seit 2014
vor 7 Jahren

Die ausschlaggebende Reputation hast du IMHO durch den Google-Überprüfungsauftrag erhalten und nicht durch die Installationen 😉