Discussion:
OT: Software digital signieren / Microsoft SmartScreen
(zu alt für eine Antwort)
Björn Schreiber
2017-03-20 09:01:56 UTC
Permalink
Hi *.*,

wir werden wohl auf kurz oder lang nicht drumherum kommen, unsere
Software digital zu signieren. Ich gehe davon aus, dass sich hier schon
einige mit dem Thema auseinandersetzen durften.

Hat jemand vielleicht passende Online-Quellen parat, die sich zum
Einlesen lohnen? Die theoretische Vorgehensweise (Aussuchen einer
Zertifizierungsstelle; Erwerb eines Zertifikats; Signierung unserer
Software mit den dafür vorgesehenen Tools) ist mir vom Prinzip her klar.
Fragen stellen sich eher bei den Details, wie z.B. Gültigkeitsdauer der
Zertifikate oder besteht die Möglichkeit, mit solch einem Zertifikat
auch die SSL Verschlüsselung einer Webseite zu erschlagen.

Und weiß jemand, ob eine digitale Signatur schon ausreichend ist, bei
Microsofts SmartScreen auf die Whitelist zu kommen?


Gruß,
Björn.
--
Björn Schreiber
DRIGUS Systeme GmbH
Achim Kalwa
2017-03-20 12:55:28 UTC
Permalink
Hallo,
Hat jemand vielleicht passende Online-Quellen parat, die sich zum Einlesen lohnen?
http://www.davidegrayson.com/signing/
[...]
Fragen stellen sich eher bei den Details, wie z.B. Gültigkeitsdauer der
Zertifikate oder besteht die Möglichkeit, mit solch einem Zertifikat
auch die SSL Verschlüsselung einer Webseite zu erschlagen.
Je länger gültig, um so niedriger der Preis pro Jahr. Das Maximum liegt
soweit ich weiß bei drei Jahren.
Und weiß jemand, ob eine digitale Signatur schon ausreichend ist, bei
Microsofts SmartScreen auf die Whitelist zu kommen?
Das mit der Whitelist passiert automatisch, wenn die Anwendung digital
https://blogs.msdn.microsoft.com/vsnetsetup/2013/01/09/windows-smartscreen-prevented-an-unrecognized-app-from-running-running-this-app-might-put-your-pc-at-risk/
Mit einem "Extended Validation (EV) Code Signing Certificates" wird die
Reputation des Herausgebers sofort erhöht, so dass keine nervigen Fragen
zur Installation mehr auftauchen.

Dieses Extended Validation Code Signing Certificates ist aber deutlich
teurer als die einfache Authenticode-Variante, und sie benötigt ein
Hardware-Token mit Zwei-Faktor-Authentifizierung beim Signieren der
https://blogs.msdn.microsoft.com/ie/2012/08/14/microsoft-smartscreen-extended-validation-ev-code-signing-certificates/
Was für Euch das Passende ist, kann ich nicht beurteilen. Wir signieren
unsere Software seit einigen Jahren mit einem Authenticode-Zertifikat
von thawte. Die haben auch eine ganz brauchbare Dokumentation zur
https://search.thawte.com/support/ssl-digital-certificates/index?page=content&id=INFO2274&actp=search&viewlocale=en_US
Björn Schreiber
2017-03-20 15:39:09 UTC
Permalink
Am 20.03.2017 um 13:55 schrieb Achim Kalwa:

(zunächst einmal danke für deine ausführlichen Schilderungen; die
Verlinkungen werde ich mir mal genauer anschauen).
Post by Achim Kalwa
Je länger gültig, um so niedriger der Preis pro Jahr. Das Maximum liegt
soweit ich weiß bei drei Jahren.
Mir ist nicht so ganz klar, welche Auswirkung die Gültigkeitsdauer
eines Zertifikats auf die Software hat. Wir haben Kunden, die heute noch
Versionen unserer Anwendungen installieren, welche vor 10, 15 Jahren
erworben wurden.
Könnte es passieren, dass sich alte, digital signierte Software nicht
mehr ausführen lässt? Und unter welchen Umständen?
Ich habe da noch einen Artikel bei heise in Erinnerung, wo auf einmal
im Apple Store erworbene Anwendungen nicht mehr liefen, weil irgendein
Zertifikat seine Gültigkeit verloren hatte.


Gruß,
Björn.
--
Björn Schreiber
DRIGUS Systeme GmbH
Achim Kalwa
2017-03-20 17:29:08 UTC
Permalink
Hallo,
Post by Björn Schreiber
Post by Achim Kalwa
Je länger gültig, um so niedriger der Preis pro Jahr. Das Maximum liegt
soweit ich weiß bei drei Jahren.
Mir ist nicht so ganz klar, welche Auswirkung die Gültigkeitsdauer
eines Zertifikats auf die Software hat. Wir haben Kunden, die heute noch
Versionen unserer Anwendungen installieren, welche vor 10, 15 Jahren
erworben wurden.
Könnte es passieren, dass sich alte, digital signierte Software nicht
mehr ausführen lässt? Und unter welchen Umständen?
Eigentlich nicht. Beim Einbinden der Signatur wird ein Zeitstempel
eingetragen. Dies kennzeichnet, dass das Zertifikat zum Zeitpunkt der
Signatur gültig war. Dazu wird ein externer Zeitserver verwendet,
typischerweise vom Aussteller des Codesigning-Zertifikats. Wird in der
jeweiligen Doku auch genannt. Selbst wenn das Zertifikat des Entwicklers
abgelaufen ist, die damit in der Vergangenheit signierte Anwendung läuft
weiterhin.
Post by Björn Schreiber
Ich habe da noch einen Artikel bei heise in Erinnerung, wo auf einmal
im Apple Store erworbene Anwendungen nicht mehr liefen, weil irgendein
Zertifikat seine Gültigkeit verloren hatte.
Ja, da war neulich mal was. Betraf aber "nur" Apple; keine
Windows-Anwendungen.


Gruß
Achim
Matthias Hanft
2017-03-20 14:27:35 UTC
Permalink
Post by Björn Schreiber
wir werden wohl auf kurz oder lang nicht drumherum kommen, unsere
Software digital zu signieren. Ich gehe davon aus, dass sich hier schon
einige mit dem Thema auseinandersetzen durften.
Ich kann dir nur erzählen, wie's ich mache:

- habe mir mein Zertifikat von https://www.cacert.org/ für Codesigning
freischalten lassen

- habe das "CodeSign"-Paket von Microsoft runtergeladen

- verwende von dort "SignCode.exe" mit dem Timestamp von
http://timestamp.globalsign.com/scripts/timstamp.dll

Damit ist die Signatur drin. Und kostnix. Haken an der Sache: Damit das
_richtig_gut_ funktioniert, müsste das Root-Cert von CaCert.org in Windows
als vertrauenswürdig installiert sein. Kann man von https://www.cacert.org/index.php?id=3
aus "einmal im Leben" manuell machen. Wer's nicht macht, sieht halt ein
Zertifikat von "Unbekannt" oder so. IMHO aber immer noch besser als nix...

Gruß Matthias.
Björn Schreiber
2017-03-20 15:43:52 UTC
Permalink
Post by Matthias Hanft
Damit ist die Signatur drin. Und kostnix. Haken an der Sache: Damit das
_richtig_gut_ funktioniert, müsste das Root-Cert von CaCert.org in Windows
als vertrauenswürdig installiert sein.
Und auch ohne das Zertifikat hinzuzufügen - was bei unseren Kunden
ein No-Go wäre - springt SmartScreen bei so einer signierten Anwendung
nicht (mehr) an?

Wir haben gerade den ersten Fall, wo sich ein Unternehmen weigert,
unsere Anwendungen an SmartScreen vorbei zu installieren. Unsere
Anwendungen müssen explizit bei Microsoft auf der WhiteList stehen.


Gruß,
Björn.
--
Björn Schreiber
DRIGUS Systeme GmbH
Matthias Hanft
2017-03-20 17:24:48 UTC
Permalink
Post by Björn Schreiber
Und auch ohne das Zertifikat hinzuzufügen - was bei unseren Kunden
ein No-Go wäre - springt SmartScreen bei so einer signierten Anwendung
nicht (mehr) an?
Das weiß ich nicht; bei einem neuen Windows installiere ich als eine
der ersten Amtshandlungen immer gleich das CAcert-Root-Zertifikat im
Windows-Zertifikatsspeicher, weil ich selbst heftig mit dieser PKI
arbeite (E-Mail, Server-Zertifikate für HTTP und OpenVPN, Codesign...).
Ich würde das Root-Cert daher jetzt auch nur sehr ungern "mal eben"
zum Testen rausschmeißen. Mit installiertem Root-Cert erscheint nach
dem Download mit Edge jedenfalls kurz "Sicherheitsprüfung wird ausge-
führt" und dann "Der Download von ... ist abgeschlossen". Was ohne
installiertes Root-Cert passiert, kannst du selber ausprobieren, wenn
du meinen Installer runterlädst (von http://www.myebilanz.de/ - Down-
load-Link gleich ganz oben auf der Seite); sowohl das runtergeladene
setup.exe als auch das damit ausgepackte und installierte myebilanz.exe
habe ich wie beschrieben mit einem CAcert.org-Zertifikat signiert (und
um OnTopic zu bleiben: es ist mit Delphi geschrieben) :-)
Post by Björn Schreiber
Wir haben gerade den ersten Fall, wo sich ein Unternehmen weigert,
unsere Anwendungen an SmartScreen vorbei zu installieren. Unsere
Anwendungen müssen explizit bei Microsoft auf der WhiteList stehen.
Gottseidank bin ich in der glücklichen Lage, so einem Kunden sagen
zu können "dann kaufen Sie halt ein anderes Programm" :-)

Aber im Ernst, mein "Signier-Workflow" würde vermutlich auch für
deinen Bedarf funktionieren, wenn nur das Zertifikat von einer
amtli... äh... Microsoft-anerkannten Zertifizierungsstelle käme.
Als ich das letzte Mal nachgeschaut habe, wer sowas anbietet und
was das kostet, habe ich durchweg Größenordnungen von 800 US$/Jahr
gefunden; das war mir (in meinem Fall für ein Programm, das es in
einer Freeware- und einer 30-EUR-Version gibt) dann doch etwas zu
heftig :-(

Gruß Matthias.
Achim Kalwa
2017-03-21 08:21:27 UTC
Permalink
Moin,

Am 20.03.2017 um 18:24 schrieb Matthias Hanft:
[...]
Post by Matthias Hanft
Was ohne
installiertes Root-Cert passiert, kannst du selber ausprobieren, wenn
du meinen Installer runterlädst (von http://www.myebilanz.de/ - Down-
load-Link gleich ganz oben auf der Seite);
Das hätte ich ja zu gerne mal ausprobiert, aber unser zentraler Proxy
Post by Matthias Hanft
Blocked by URL Filter Database
Your requested URL has been blocked by Web Gateway URL Filter database module.
The URL is listed in categories that are not allowed at this time.
URL: http://ohne.org/*****/setup-myebilanz-0.7.1.1.exe
URL Categories: Malicious Sites
Reputation: High Risk
Media Type: application/x-empty
Rulename: Block URLs From List Blocked Categories Malicious
Block reason: Blocked by URL filtering
Wurde in der Vergangenheit mal über diesen Host Malware verteilt?!

Achim
Matthias Hanft
2017-03-21 10:33:46 UTC
Permalink
Post by Achim Kalwa
Das hätte ich ja zu gerne mal ausprobiert, aber unser zentraler Proxy
Post by Matthias Hanft
Blocked by URL Filter Database
Your requested URL has been blocked by Web Gateway URL Filter database module.
The URL is listed in categories that are not allowed at this time.
Wurde in der Vergangenheit mal über diesen Host Malware verteilt?!
Nicht dass ich wüsste. Das ist allerdings nicht mein eigener Server, so dass
ich keine Ahnung habe, was da noch alles drauf läuft/liegt - ich verwende den
nur zur Software-Verteilung (wegen: günstiger Speicherplatz und Volumen-Flat-
rate). Was andere Kunden da drauf machen, entzieht sich natürlich meiner
Kenntnis (und Verantwortung)...

Anyway, ich hab das Setup-Paket jetzt auch auf meinen eigenen Server kopiert
- wenn der auch in einer Blacklist steht, ist irgendwas mit der Blacklist
kaputt... https://www.myebilanz.de/setup-myebilanz-0.7.1.1.exe

Wie gesagt ist sowohl das setup.exe als auch das nachher daraus resultierende
(mit Delphi programmierte) myebilanz.exe mit Microsoft's CodeSign mit einem
CAcert-Zertifikat signiert.

Bin auch mal gespannt, was dein Scanner/Filter dazu sagt :-)

Gruß Matthias.
Achim Kalwa
2017-03-22 08:29:52 UTC
Permalink
Moin,

Am 21.03.2017 um 11:33 schrieb Matthias Hanft:

[Download-URL]
Post by Matthias Hanft
Wie gesagt ist sowohl das setup.exe als auch das nachher daraus resultierende
(mit Delphi programmierte) myebilanz.exe mit Microsoft's CodeSign mit einem
CAcert-Zertifikat signiert.
Bin auch mal gespannt, was dein Scanner/Filter dazu sagt :-)
Download erfolgreich. Der Hostname steht tatsächlich bei uns auf der
Blacklist. Ich habe das aber nicht weiter hinterfragt.

SmartScreen meldet sich NICHT (Windows 10, Edge), statt dessen erscheint
die Benutzerkontensteuerung mit Meldung auf gelben Grund:

"Möchten Sie zulassen, [...] von einem unbekannten Herausgeber [...]

Die Signatur-Eigenschaften nörgeln:
"Eine Zertifikatkette wurde zwar verarbeitet, endete jedoch mit einem
Stammzertifikat, das beim Vertrauensanbieter nicht als vertrauenswürdig
gilt."
(Ich liebe solche Formulierungen).

Mit dem passenden CaCert Root-Zertifikat installiert kommt die
Benutzerkontensteuerung in Blau/Türkis mit Deinem Namen als Herausgeber.
In keinem Fall wurde SmartFilter getriggert.

Jetzt wäre es mal interessant, die Anwendung von Björn zu testen :-)

Achim
Björn Schreiber
2017-03-22 10:42:58 UTC
Permalink
Am 22.03.2017 um 09:29 schrieb Achim Kalwa:

(Stellvertretend noch einmal danke für eure Antworten.)
Post by Achim Kalwa
Jetzt wäre es mal interessant, die Anwendung von Björn zu testen :-)
Die kann ich leider nicht zur Verfügung stellen. Es handelt sich um
eine recht spezielle Software, die nur für einen kleinen Bereich
interessant ist.
Deswegen hatten wir auch schon in der Vergangenheit Probleme mit
Reputationssystemen wie es es neben Microsoft SmartScreen z.B. auch die
AntiViren-Software von Norton verwendet, die Anzahl der Downloads /
Installationen ist einfach zu gering.


Gruß,
Björn.
--
Björn Schreiber
DRIGUS Systeme GmbH
Matthias Hanft
2017-03-22 12:08:59 UTC
Permalink
Post by Achim Kalwa
SmartScreen meldet sich NICHT (Windows 10, Edge), statt dessen erscheint
die Benutzerkontensteuerung mit Meldung auf gelben Grund: [...]
Herzlichen Dank für deine Experimente!
Post by Achim Kalwa
"Eine Zertifikatkette wurde zwar verarbeitet, endete jedoch mit einem
Stammzertifikat, das beim Vertrauensanbieter nicht als vertrauenswürdig
gilt."
(Ich liebe solche Formulierungen).
"Vertrauensanbieter" - wow, was für ein Wort! Ob das mal Eingang in den
Duden finden wird? :-)
Post by Achim Kalwa
In keinem Fall wurde SmartFilter getriggert.
Das ist ja schon mal sehr beruhigend - dann kann ich meine Delphi-Programme
wohl weiterhin dementsprechend signieren. (Bliebe bloß zu überlegen, ob ich
sie weiter auf einem geblacklisteten Server hoste - aber da warst du bisher
der einzige, der sich deswegen gemeldet hat. Auf meinem eigenen Server hab
ich leider keine Volumen-Flatrate, aber die momentanen ca. 13 GB/Monat Down-
loads wären in meinem Kontingent noch locker drin...)

Vielen Dank nochmal für deine Tests!

Gruß Matthias.
Achim Kalwa
2017-03-20 17:36:31 UTC
Permalink
Hi,
Post by Matthias Hanft
Damit ist die Signatur drin. Und kostnix. Haken an der Sache: Damit das
_richtig_gut_ funktioniert, müsste das Root-Cert von CaCert.org in Windows
als vertrauenswürdig installiert sein.
Und auch ohne das Zertifikat hinzuzufügen - was bei unseren Kunden ein
No-Go wäre - springt SmartScreen bei so einer signierten Anwendung nicht
(mehr) an?
Nein. Man müsste erst das Root-Zertifikat von CaCert.org installieren.
Bei den kostenpflichtigen Zertifikaten von z.B. Symantec, thawte, Comodo
usw. ist das jeweilige Root-Cert bereits in Windows "drin" (oder wurde
bei einem Windows-Update installiert). Bei den kostenlosen ist das
leider nicht der Fall.
Wir haben gerade den ersten Fall, wo sich ein Unternehmen weigert,
unsere Anwendungen an SmartScreen vorbei zu installieren. Unsere
Anwendungen müssen explizit bei Microsoft auf der WhiteList stehen.
Dagegen hilft nur:
Eigene Anwendung und das Setup signieren und von möglichst vielen
Anwendern auf verschiedenen Windows-Versionen installieren lassen. Je
mehr Anwender die Software installieren (und dabei ggf. SmartFilter
anweisen, trotzdem zu installieren), um so besser wird die Reputation
der Anwendung bzw. des Herausgebers (aus Signatur). Microsoft greift
diese Infos aus Smartfilter ab und sammelt diese Zentral.

Jetzt sollte das oben erwähnte Unternehmen ohne Probleme installieren
können.

Gruß
Achim
Achim Kalwa
2017-05-16 18:54:43 UTC
Permalink
Hallo Björn,
Post by Björn Schreiber
Und weiß jemand, ob eine digitale Signatur schon ausreichend ist, bei
Microsofts SmartScreen auf die Whitelist zu kommen?
Ist das Thema noch aktuell bei Dir?

Gerade habe ich folgenden Hinweis beim polnischen Anbieter "certum.eu"
gefunden:

*EV Code Signing*
[...]
Software signed in this way eliminates messages such as "unknown
software publisher" and "Dangerous software" and most importantly,
immediately eliminates the occurrence of the message SmartScreen®
Application Reputation, a filer undesirable from the point of view of
the owner of the software that treats software as unwanted and
untrusted. The elimination of unwanted messages translates directly into
increased customer confidence and hence a greater number of downloads.

https://www.certum.eu/certum/cert,offer_microsoft_code_signing.xml

Gruß
Achim
Björn Schreiber
2017-05-17 06:59:15 UTC
Permalink
Hallo Achim,
Post by Achim Kalwa
Gerade habe ich folgenden Hinweis beim polnischen Anbieter "certum.eu"
[...]

Danke für die Informationen. Wir haben uns inzwischen für ein EV Code
Signing Zertifikat von GlogalSign entschieden. Ein reines Code Signing
Zertifikat, wie es z.B. Thawte anbietet (worüber wir unser EV SSL
Zertifikat für unsere Domain erworben haben) kam auf Grund der
SmartScreen Problematik für uns nicht in Frage.
Der Signiervorgang wurde inzwischen transparent in unser
Build-Prozess integriert. Es muss halt nur das Token am Rechner stecken
und für jede Programmgruppe einmalig das Tokenkennwort eingegeben werden.
Post by Achim Kalwa
Gruß
Achim
Grüße,
Björn.
--
DRIGUS Systeme GmbH
Loading...